<FUNCTION>
<NAME>polkit_check_auth</NAME>
<RETURNS>polkit_uint64_t </RETURNS>
pid_t pid, ...
</FUNCTION>
<FUNCTION>
<NAME>polkit_check_authv</NAME>
<RETURNS>polkit_uint64_t </RETURNS>
pid_t pid, const char **action_ids
</FUNCTION>
<FUNCTION>
<NAME>polkit_auth_obtain</NAME>
<RETURNS>polkit_bool_t   </RETURNS>
const char *action_id, polkit_uint32_t xid, pid_t pid, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_dbus_error_generate</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitAction *action, PolKitResult result, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_dbus_error_parse</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
DBusError *error, PolKitAction **action, PolKitResult *result
</FUNCTION>
<FUNCTION>
<NAME>polkit_dbus_error_parse_from_strings</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
const char *error_name, const char *error_message, PolKitAction **action, PolKitResult *result
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_new_from_objpath</NAME>
<RETURNS>PolKitSession *</RETURNS>
DBusConnection *con, const char *objpath, uid_t uid, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_new_from_cookie</NAME>
<RETURNS>PolKitSession *</RETURNS>
DBusConnection *con, const char *cookie, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_new_from_dbus_name</NAME>
<RETURNS>PolKitCaller  *</RETURNS>
DBusConnection *con, const char *dbus_name, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_new_from_pid</NAME>
<RETURNS>PolKitCaller  *</RETURNS>
DBusConnection *con, pid_t pid, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_is_authorization_relevant</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
DBusConnection *con, PolKitAuthorization *auth, DBusError *error
</FUNCTION>
<STRUCT>
<NAME>PolKitTracker</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_tracker_new</NAME>
<RETURNS>PolKitTracker *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_ref</NAME>
<RETURNS>PolKitTracker *</RETURNS>
PolKitTracker *pk_tracker
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_unref</NAME>
<RETURNS>void           </RETURNS>
PolKitTracker *pk_tracker
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_set_system_bus_connection</NAME>
<RETURNS>void           </RETURNS>
PolKitTracker *pk_tracker, DBusConnection *con
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_init</NAME>
<RETURNS>void           </RETURNS>
PolKitTracker *pk_tracker
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_dbus_func</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitTracker *pk_tracker, DBusMessage *message
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_get_caller_from_dbus_name</NAME>
<RETURNS>PolKitCaller  *</RETURNS>
PolKitTracker *pk_tracker, const char *dbus_name, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_get_caller_from_pid</NAME>
<RETURNS>PolKitCaller  *</RETURNS>
PolKitTracker *pk_tracker, pid_t pid, DBusError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_tracker_is_authorization_relevant</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitTracker *pk_tracker, PolKitAuthorization *auth, DBusError *error
</FUNCTION>
<ENUM>
<NAME>KitSpawnFlags</NAME>
typedef enum {
        KIT_SPAWN_CHILD_INHERITS_STDIN = 1 << 0,
        KIT_SPAWN_STDOUT_TO_DEV_NULL   = 1 << 1,
        KIT_SPAWN_STDERR_TO_DEV_NULL   = 1 << 2,
} KitSpawnFlags;
</ENUM>
<FUNCTION>
<NAME>kit_spawn_sync</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char     *working_directory,KitSpawnFlags   flags,char          **argv,char          **envp,char           *stdinp,char          **stdoutp,char          **stderrp,int            *out_exit_status
</FUNCTION>
<STRUCT>
<NAME>KitTest</NAME>
typedef struct {
        const char *name;
        void (*setup) (void);
        void (*teardown) (void);
        kit_bool_t (*run) (void);
} KitTest;
</STRUCT>
<FUNCTION>
<NAME>kit_test_run</NAME>
<RETURNS>kit_bool_t </RETURNS>
KitTest **tests, size_t num_tests
</FUNCTION>
<FUNCTION>
<NAME>kit_file_get_contents</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *path, char **out_contents, size_t *out_contents_size
</FUNCTION>
<FUNCTION>
<NAME>kit_file_set_contents</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *path, mode_t mode, const char *contents, size_t contents_size
</FUNCTION>
<FUNCTION>
<NAME>kit_getpwnam</NAME>
<RETURNS>struct passwd *</RETURNS>
const char *username
</FUNCTION>
<FUNCTION>
<NAME>kit_getpwuid</NAME>
<RETURNS>struct passwd *</RETURNS>
uid_t uid
</FUNCTION>
<FUNCTION>
<NAME>kit_debug</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_warning</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_debug</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_warning</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<STRUCT>
<NAME>KitHash</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>KitHashFunc</NAME>
<RETURNS>uint32_t </RETURNS>
const void *key
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>KitEqualFunc</NAME>
<RETURNS>kit_bool_t </RETURNS>
const void *key1, const void *key2
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>KitFreeFunc</NAME>
<RETURNS>void </RETURNS>
void *p
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>KitCopyFunc</NAME>
<RETURNS>void *</RETURNS>
const void *p
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>KitHashForeachFunc</NAME>
<RETURNS>kit_bool_t </RETURNS>
void *key,
                                          void *value,
                                          void *user_data,
                                          KitHash *hash
</USER_FUNCTION>
<FUNCTION>
<NAME>kit_hash_new</NAME>
<RETURNS>KitHash *</RETURNS>
KitHashFunc  hash_func,KitEqualFunc key_equal_func,KitCopyFunc  key_copy_func,KitCopyFunc  value_copy_func,KitFreeFunc  key_destroy_func,KitFreeFunc  value_destroy_func
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_ref</NAME>
<RETURNS>KitHash    *</RETURNS>
KitHash *hash
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_unref</NAME>
<RETURNS>void       </RETURNS>
KitHash *hash
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_insert</NAME>
<RETURNS>kit_bool_t  </RETURNS>
KitHash *hash, void *key, void *value
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_lookup</NAME>
<RETURNS>void       *</RETURNS>
KitHash *hash, void *key, kit_bool_t *found
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_foreach</NAME>
<RETURNS>kit_bool_t  </RETURNS>
KitHash *hash, KitHashForeachFunc cb, void *user_data
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_foreach_remove</NAME>
<RETURNS>size_t      </RETURNS>
KitHash *hash, KitHashForeachFunc cb, void *user_data
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_direct_hash_func</NAME>
<RETURNS>uint32_t     </RETURNS>
const void *key
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_direct_equal_func</NAME>
<RETURNS>kit_bool_t   </RETURNS>
const void *v1, const void *v2
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_str_hash_func</NAME>
<RETURNS>uint32_t     </RETURNS>
const void *key
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_str_equal_func</NAME>
<RETURNS>kit_bool_t   </RETURNS>
const void *v1, const void *v2
</FUNCTION>
<FUNCTION>
<NAME>kit_hash_str_copy</NAME>
<RETURNS>void        *</RETURNS>
const void *p
</FUNCTION>
<FUNCTION>
<NAME>kit_strdup</NAME>
<RETURNS>char *</RETURNS>
const char *s
</FUNCTION>
<FUNCTION>
<NAME>kit_strndup</NAME>
<RETURNS>char *</RETURNS>
const char *s, size_t n
</FUNCTION>
<FUNCTION>
<NAME>kit_strdup_printf</NAME>
<RETURNS>char *</RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_strdup_printf</NAME>
<RETURNS>char *</RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_strdup_vprintf</NAME>
<RETURNS>char *</RETURNS>
const char *format, va_list args
</FUNCTION>
<FUNCTION>
<NAME>kit_str_append</NAME>
<RETURNS>char *</RETURNS>
char *s, const char *s2
</FUNCTION>
<FUNCTION>
<NAME>kit_str_has_prefix</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *s, const char *prefix
</FUNCTION>
<FUNCTION>
<NAME>kit_str_has_suffix</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *s, const char *suffix
</FUNCTION>
<FUNCTION>
<NAME>kit_strsplit</NAME>
<RETURNS>char **</RETURNS>
const char *s, char delim, size_t *num_tokens
</FUNCTION>
<FUNCTION>
<NAME>kit_strfreev</NAME>
<RETURNS>void </RETURNS>
char **str_array
</FUNCTION>
<FUNCTION>
<NAME>kit_strv_length</NAME>
<RETURNS>size_t </RETURNS>
char **str_array
</FUNCTION>
<USER_FUNCTION>
<NAME>KitStringEntryParseFunc</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *key, const char *value, void *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>kit_string_entry_parse</NAME>
<RETURNS>kit_bool_t </RETURNS>
const char *entry, KitStringEntryParseFunc func, void *user_data
</FUNCTION>
<FUNCTION>
<NAME>kit_string_percent_decode</NAME>
<RETURNS>kit_bool_t  </RETURNS>
char *s
</FUNCTION>
<FUNCTION>
<NAME>kit_string_percent_encode</NAME>
<RETURNS>size_t      </RETURNS>
char *buf, size_t buf_size, const char *s
</FUNCTION>
<FUNCTION>
<NAME>kit_string_entry_create</NAME>
<RETURNS>size_t      </RETURNS>
char *buf, size_t buf_size, ...
</FUNCTION>
<FUNCTION>
<NAME>kit_string_entry_createv</NAME>
<RETURNS>size_t      </RETURNS>
char *buf, size_t buf_size, const char *kv_pairs[]
</FUNCTION>
<STRUCT>
<NAME>KitString</NAME>
</STRUCT>
<FUNCTION>
<NAME>kit_string_new</NAME>
<RETURNS>KitString   *</RETURNS>
const char *init, size_t len
</FUNCTION>
<FUNCTION>
<NAME>kit_string_free</NAME>
<RETURNS>char        *</RETURNS>
KitString *s, kit_bool_t free_segment, size_t *out_segment_size
</FUNCTION>
<FUNCTION>
<NAME>kit_string_ensure_size</NAME>
<RETURNS>kit_bool_t   </RETURNS>
KitString *s, size_t new_size
</FUNCTION>
<FUNCTION>
<NAME>kit_string_append_c</NAME>
<RETURNS>kit_bool_t   </RETURNS>
KitString *s, char c
</FUNCTION>
<FUNCTION>
<NAME>kit_string_append</NAME>
<RETURNS>kit_bool_t   </RETURNS>
KitString *s, const char *str
</FUNCTION>
<STRUCT>
<NAME>KitList</NAME>
</STRUCT>
<STRUCT>
<NAME>KitList</NAME>
struct _KitList {
        void *data;
        KitList *next;
        KitList *prev;
};

</STRUCT>
<USER_FUNCTION>
<NAME>KitListForeachFunc</NAME>
<RETURNS>kit_bool_t </RETURNS>
void *data,
                                          void *user_data,
                                          KitList *list
</USER_FUNCTION>
<FUNCTION>
<NAME>kit_list_append</NAME>
<RETURNS>KitList    *</RETURNS>
KitList *list, void *data
</FUNCTION>
<FUNCTION>
<NAME>kit_list_prepend</NAME>
<RETURNS>KitList    *</RETURNS>
KitList *list, void *data
</FUNCTION>
<FUNCTION>
<NAME>kit_list_free</NAME>
<RETURNS>void        </RETURNS>
KitList *list
</FUNCTION>
<FUNCTION>
<NAME>kit_list_delete_link</NAME>
<RETURNS>KitList    *</RETURNS>
KitList *list, KitList *link
</FUNCTION>
<FUNCTION>
<NAME>kit_list_length</NAME>
<RETURNS>size_t      </RETURNS>
KitList *list
</FUNCTION>
<FUNCTION>
<NAME>kit_list_foreach</NAME>
<RETURNS>kit_bool_t  </RETURNS>
KitList *list, KitListForeachFunc func, void *user_data
</FUNCTION>
<FUNCTION>
<NAME>kit_list_copy</NAME>
<RETURNS>KitList    *</RETURNS>
KitList *list
</FUNCTION>
<MACRO>
<NAME>KIT_BEGIN_DECLS</NAME>
#  define KIT_BEGIN_DECLS extern "C" {
</MACRO>
<MACRO>
<NAME>KIT_END_DECLS</NAME>
#  define KIT_END_DECLS }
</MACRO>
<MACRO>
<NAME>KIT_BEGIN_DECLS</NAME>
#  define KIT_BEGIN_DECLS
</MACRO>
<MACRO>
<NAME>KIT_END_DECLS</NAME>
#  define KIT_END_DECLS
</MACRO>
<TYPEDEF>
<NAME>kit_bool_t</NAME>
typedef int kit_bool_t;
</TYPEDEF>
<FUNCTION>
<NAME>kit_print_backtrace</NAME>
<RETURNS>void </RETURNS>
void
</FUNCTION>
<MACRO>
<NAME>kit_assert</NAME>
#define kit_assert(expr)                                                                        \
do {                                                                                            \
        if (expr) {                                                                             \
                ;                                                                               \
        } else {                                                                                \
                kit_warning ("%s:%d:%s(): %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \
                kit_print_backtrace ();                                                         \
                exit (1);                                                                       \
        }                                                                                       \
} while (0)
</MACRO>
<MACRO>
<NAME>kit_return_if_fail</NAME>
#define kit_return_if_fail(expr)                                                                \
do {                                                                                            \
        if (expr) {                                                                             \
                ;                                                                               \
        } else {                                                                                \
                kit_warning ("%s:%d:%s(): %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \
                kit_print_backtrace ();                                                         \
                return;                                                                         \
        }                                                                                       \
} while (0)
</MACRO>
<MACRO>
<NAME>kit_return_val_if_fail</NAME>
#define kit_return_val_if_fail(expr,val)                                                        \
do {                                                                                            \
        if (expr) {                                                                             \
                ;                                                                               \
        } else {                                                                                \
                kit_warning ("%s:%d:%s(): %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \
                kit_print_backtrace ();                                                         \
                return val;                                                                     \
        }                                                                                       \
} while (0)
</MACRO>
<FUNCTION>
<NAME>kit_malloc</NAME>
<RETURNS>void *</RETURNS>
size_t bytes
</FUNCTION>
<FUNCTION>
<NAME>kit_malloc0</NAME>
<RETURNS>void *</RETURNS>
size_t bytes
</FUNCTION>
<FUNCTION>
<NAME>kit_realloc</NAME>
<RETURNS>void *</RETURNS>
void *memory, size_t bytes
</FUNCTION>
<FUNCTION>
<NAME>kit_free</NAME>
<RETURNS>void  </RETURNS>
void *memory
</FUNCTION>
<MACRO>
<NAME>kit_new</NAME>
#define kit_new(type, count)  ((type*)kit_malloc (sizeof (type) * (count)));
</MACRO>
<MACRO>
<NAME>kit_new0</NAME>
#define kit_new0(type, count) ((type*)kit_malloc0 (sizeof (type) * (count)));
</MACRO>
<STRUCT>
<NAME>PolKitGrant</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>PolKitGrantType</NAME>
<RETURNS>void </RETURNS>
PolKitGrant *polkit_grant,
                                 PolKitResult grant_type,
                                 void *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantSelectAdminUser</NAME>
<RETURNS>char *</RETURNS>
PolKitGrant *polkit_grant,
                                             char **admin_users,
                                             void *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantConversationPromptEchoOff</NAME>
<RETURNS>char *</RETURNS>
PolKitGrant *polkit_grant,
                                                       const char *prompt,
                                                       void       *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantConversationPromptEchoOn</NAME>
<RETURNS>char *</RETURNS>
PolKitGrant *polkit_grant,
                                                      const char *prompt,
                                                      void       *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantConversationErrorMessage</NAME>
<RETURNS>void </RETURNS>
PolKitGrant *polkit_grant,
                                                     const char *error_message,
                                                     void       *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantConversationTextInfo</NAME>
<RETURNS>void </RETURNS>
PolKitGrant *polkit_grant,
                                                 const char *text_info,
                                                 void       *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantOverrideGrantType</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitGrant *polkit_grant,
                                                      PolKitResult grant_type,
                                                      void *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantDone</NAME>
<RETURNS>void </RETURNS>
PolKitGrant *polkit_grant,
                                 polkit_bool_t gained_privilege,
                                 polkit_bool_t invalid_data,
                                 void *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantAddChildWatch</NAME>
<RETURNS>int </RETURNS>
PolKitGrant *polkit_grant,
                                         pid_t pid
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantAddIOWatch</NAME>
<RETURNS>int </RETURNS>
PolKitGrant *polkit_grant,
                                      int fd
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitGrantRemoveWatch</NAME>
<RETURNS>void </RETURNS>
PolKitGrant *polkit_grant,
                                        int watch_id
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_grant_new</NAME>
<RETURNS>PolKitGrant  *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_ref</NAME>
<RETURNS>PolKitGrant  *</RETURNS>
PolKitGrant *polkit_grant
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_unref</NAME>
<RETURNS>void          </RETURNS>
PolKitGrant *polkit_grant
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_set_functions</NAME>
<RETURNS>void          </RETURNS>
PolKitGrant *polkit_grant,PolKitGrantAddIOWatch func_add_io_watch,PolKitGrantAddChildWatch func_add_child_watch,PolKitGrantRemoveWatch func_remove_watch,PolKitGrantType func_type,PolKitGrantSelectAdminUser func_select_admin_user,PolKitGrantConversationPromptEchoOff func_prompt_echo_off,PolKitGrantConversationPromptEchoOn func_prompt_echo_on,PolKitGrantConversationErrorMessage func_error_message,PolKitGrantConversationTextInfo func_text_info,PolKitGrantOverrideGrantType func_override_grant_type,PolKitGrantDone func_done,void *user_data
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_initiate_auth</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitGrant  *polkit_grant,PolKitAction *action,PolKitCaller *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_cancel_auth</NAME>
<RETURNS>void          </RETURNS>
PolKitGrant *polkit_grant
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_io_func</NAME>
<RETURNS>void          </RETURNS>
PolKitGrant *polkit_grant, int fd
</FUNCTION>
<FUNCTION>
<NAME>polkit_grant_child_func</NAME>
<RETURNS>void          </RETURNS>
PolKitGrant *polkit_grant, pid_t pid, int exit_code
</FUNCTION>
<STRUCT>
<NAME>PolKitAuthorization</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_authorization_ref</NAME>
<RETURNS>PolKitAuthorization *</RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_unref</NAME>
<RETURNS>void                 </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_debug</NAME>
<RETURNS>void                 </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_validate</NAME>
<RETURNS>polkit_bool_t        </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<ENUM>
<NAME>PolKitAuthorizationScope</NAME>
typedef enum {
        POLKIT_AUTHORIZATION_SCOPE_PROCESS_ONE_SHOT,
        POLKIT_AUTHORIZATION_SCOPE_PROCESS,
        POLKIT_AUTHORIZATION_SCOPE_SESSION,
        POLKIT_AUTHORIZATION_SCOPE_ALWAYS,
} PolKitAuthorizationScope;
</ENUM>
<ENUM>
<NAME>PolKitAuthorizationType</NAME>
typedef enum {
        POLKIT_AUTHORIZATION_TYPE_UID,
} PolKitAuthorizationType;
</ENUM>
<FUNCTION>
<NAME>polkit_authorization_type</NAME>
<RETURNS>PolKitAuthorizationType </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_get_action_id</NAME>
<RETURNS>const char *</RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_get_uid</NAME>
<RETURNS>uid_t </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_get_time_of_grant</NAME>
<RETURNS>time_t </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_get_scope</NAME>
<RETURNS>PolKitAuthorizationScope </RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_scope_process_get_pid</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorization *auth,pid_t *out_pid,polkit_uint64_t *out_pid_start_time
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_scope_session_get_ck_objref</NAME>
<RETURNS>const char *</RETURNS>
PolKitAuthorization *auth
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_was_granted_via_defaults</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorization *auth,uid_t *out_user_authenticated_as
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_was_granted_explicitly</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorization *auth,uid_t *out_by_whom,polkit_bool_t *out_is_negative
</FUNCTION>
<USER_FUNCTION>
<NAME>PolKitAuthorizationConstraintsForeachFunc</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorization *auth,
                                                                    PolKitAuthorizationConstraint *authc,
                                                                    void *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraints_foreach</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorization *auth,PolKitAuthorizationConstraintsForeachFunc cb,void *user_data
</FUNCTION>
<STRUCT>
<NAME>PolKitContext</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>PolKitContextConfigChangedCB</NAME>
<RETURNS>void </RETURNS>
PolKitContext  *pk_context,
                                              void           *user_data
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitContextAddIOWatch</NAME>
<RETURNS>int </RETURNS>
PolKitContext *pk_context, int fd
</USER_FUNCTION>
<USER_FUNCTION>
<NAME>PolKitContextRemoveIOWatch</NAME>
<RETURNS>void </RETURNS>
PolKitContext *pk_context, int watch_id
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_context_new</NAME>
<RETURNS>PolKitContext *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_set_config_changed</NAME>
<RETURNS>void           </RETURNS>
PolKitContext                        *pk_context,PolKitContextConfigChangedCB          cb,void                                 *user_data
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_set_io_watch_functions</NAME>
<RETURNS>void           </RETURNS>
PolKitContext                        *pk_context,PolKitContextAddIOWatch               io_add_watch_func,PolKitContextRemoveIOWatch            io_remove_watch_func
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_set_load_descriptions</NAME>
<RETURNS>void           </RETURNS>
PolKitContext                        *pk_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_init</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitContext                        *pk_context,PolKitError                         **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_ref</NAME>
<RETURNS>PolKitContext *</RETURNS>
PolKitContext                        *pk_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_unref</NAME>
<RETURNS>void           </RETURNS>
PolKitContext                        *pk_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_force_reload</NAME>
<RETURNS>void           </RETURNS>
PolKitContext                        *pk_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_io_func</NAME>
<RETURNS>void           </RETURNS>
PolKitContext *pk_context, int fd
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_get_policy_cache</NAME>
<RETURNS>PolKitPolicyCache *</RETURNS>
PolKitContext *pk_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_can_session_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitContext   *pk_context,PolKitAction    *action,PolKitSession   *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_can_caller_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitContext   *pk_context,PolKitAction    *action,PolKitCaller    *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_get_config</NAME>
<RETURNS>PolKitConfig *</RETURNS>
PolKitContext *pk_context, PolKitError **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_is_caller_authorized</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitContext         *pk_context,PolKitAction          *action,PolKitCaller          *caller,polkit_bool_t          revoke_if_one_shot,PolKitError          **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_is_session_authorized</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitContext         *pk_context,PolKitAction          *action,PolKitSession         *session,PolKitError          **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_context_get_authorization_db</NAME>
<RETURNS>PolKitAuthorizationDB *</RETURNS>
PolKitContext *pk_context
</FUNCTION>
<STRUCT>
<NAME>PolKitPolicyFileEntry</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>PolKitPolicyFileEntryAnnotationsForeachFunc</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitPolicyFileEntry *policy_file_entry,
                                                                      const char *key,
                                                                      const char *value,
                                                                      void *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_ref</NAME>
<RETURNS>PolKitPolicyFileEntry *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_unref</NAME>
<RETURNS>void                   </RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_debug</NAME>
<RETURNS>void                   </RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_id</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_default</NAME>
<RETURNS>PolKitPolicyDefault   *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_action_description</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_action_message</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_action_vendor</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_action_vendor_url</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_action_icon_name</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_annotations_foreach</NAME>
<RETURNS>polkit_bool_t          </RETURNS>
PolKitPolicyFileEntry *policy_file_entry,PolKitPolicyFileEntryAnnotationsForeachFunc cb,void *user_data
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_annotation</NAME>
<RETURNS>const char            *</RETURNS>
PolKitPolicyFileEntry *policy_file_entry,const char *key
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_get_default_factory</NAME>
<RETURNS>PolKitPolicyDefault   *</RETURNS>
PolKitPolicyFileEntry  *policy_file_entry
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_set_default</NAME>
<RETURNS>polkit_bool_t          </RETURNS>
PolKitPolicyFileEntry  *policy_file_entry,PolKitPolicyDefault    *defaults,PolKitError           **error
</FUNCTION>
<MACRO>
<NAME>POLKIT_BEGIN_DECLS</NAME>
#  define POLKIT_BEGIN_DECLS extern "C" {
</MACRO>
<MACRO>
<NAME>POLKIT_END_DECLS</NAME>
#  define POLKIT_END_DECLS }
</MACRO>
<MACRO>
<NAME>POLKIT_BEGIN_DECLS</NAME>
#  define POLKIT_BEGIN_DECLS
</MACRO>
<MACRO>
<NAME>POLKIT_END_DECLS</NAME>
#  define POLKIT_END_DECLS
</MACRO>
<MACRO>
<NAME>POLKIT_GNUC_DEPRECATED</NAME>
#define POLKIT_GNUC_DEPRECATED                            \
  __attribute__((__deprecated__))
</MACRO>
<MACRO>
<NAME>POLKIT_GNUC_DEPRECATED</NAME>
#define POLKIT_GNUC_DEPRECATED
</MACRO>
<TYPEDEF>
<NAME>polkit_bool_t</NAME>
typedef int polkit_bool_t;
</TYPEDEF>
<TYPEDEF>
<NAME>polkit_uint32_t</NAME>
typedef unsigned int polkit_uint32_t;
</TYPEDEF>
<TYPEDEF>
<NAME>polkit_uint64_t</NAME>
typedef unsigned long long polkit_uint64_t;
</TYPEDEF>
<STRUCT>
<NAME>PolKitAction</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_action_new</NAME>
<RETURNS>PolKitAction *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_ref</NAME>
<RETURNS>PolKitAction *</RETURNS>
PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_unref</NAME>
<RETURNS>void          </RETURNS>
PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_set_action_id</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAction *action, const char  *action_id
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_get_action_id</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAction *action, char       **out_action_id
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_debug</NAME>
<RETURNS>void          </RETURNS>
PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_validate</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_validate_id</NAME>
<RETURNS>polkit_bool_t </RETURNS>
const char   *action_id
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_equal</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAction *a, PolKitAction *b
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_to_string_representation</NAME>
<RETURNS>const char   *</RETURNS>
PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_action_new_from_string_representation</NAME>
<RETURNS>PolKitAction *</RETURNS>
const char *str
</FUNCTION>
<STRUCT>
<NAME>PolKitSession</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_session_new</NAME>
<RETURNS>PolKitSession *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_ref</NAME>
<RETURNS>PolKitSession *</RETURNS>
PolKitSession *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_unref</NAME>
<RETURNS>void           </RETURNS>
PolKitSession *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_uid</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, uid_t           uid
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_seat</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, PolKitSeat     *seat
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_ck_objref</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, const char     *ck_objref
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_ck_is_active</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, polkit_bool_t   is_active
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_ck_is_local</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, polkit_bool_t   is_local
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_set_ck_remote_host</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, const char     *remote_host
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_uid</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, uid_t          *out_uid
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_seat</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, PolKitSeat    **out_seat
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_ck_objref</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, char          **out_ck_objref
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_ck_is_active</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, polkit_bool_t  *out_is_active
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_ck_is_local</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, polkit_bool_t  *out_is_local
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_get_ck_remote_host</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session, char          **out_remote_host
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_debug</NAME>
<RETURNS>void           </RETURNS>
PolKitSession *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_session_validate</NAME>
<RETURNS>polkit_bool_t  </RETURNS>
PolKitSession *session
</FUNCTION>
<ENUM>
<NAME>PolKitResult</NAME>
typedef enum
{
        POLKIT_RESULT_UNKNOWN,

        POLKIT_RESULT_NO,

        POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH,
        POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_KEEP_SESSION,
        POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_KEEP_ALWAYS,

        POLKIT_RESULT_ONLY_VIA_SELF_AUTH,
        POLKIT_RESULT_ONLY_VIA_SELF_AUTH_KEEP_SESSION,
        POLKIT_RESULT_ONLY_VIA_SELF_AUTH_KEEP_ALWAYS,

        POLKIT_RESULT_YES,

        POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_ONE_SHOT,
        POLKIT_RESULT_ONLY_VIA_SELF_AUTH_ONE_SHOT,

        POLKIT_RESULT_N_RESULTS
} PolKitResult;
</ENUM>
<FUNCTION>
<NAME>polkit_result_to_string_representation</NAME>
<RETURNS>const char  *</RETURNS>
PolKitResult result
</FUNCTION>
<FUNCTION>
<NAME>polkit_result_from_string_representation</NAME>
<RETURNS>polkit_bool_t </RETURNS>
const char *string, PolKitResult *out_result
</FUNCTION>
<STRUCT>
<NAME>PolKitConfig</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_config_new</NAME>
<RETURNS>PolKitConfig  *</RETURNS>
const char *path, PolKitError **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_config_ref</NAME>
<RETURNS>PolKitConfig  *</RETURNS>
PolKitConfig *pk_config
</FUNCTION>
<FUNCTION>
<NAME>polkit_config_unref</NAME>
<RETURNS>void           </RETURNS>
PolKitConfig *pk_config
</FUNCTION>
<FUNCTION>
<NAME>polkit_config_can_session_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitConfig   *pk_config,PolKitAction    *action,PolKitSession   *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_config_can_caller_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitConfig   *pk_config,PolKitAction    *action,PolKitCaller    *caller
</FUNCTION>
<ENUM>
<NAME>PolKitConfigAdminAuthType</NAME>
typedef enum
{
        POLKIT_CONFIG_ADMIN_AUTH_TYPE_USER,
        POLKIT_CONFIG_ADMIN_AUTH_TYPE_GROUP
} PolKitConfigAdminAuthType;
</ENUM>
<FUNCTION>
<NAME>polkit_config_determine_admin_auth_type</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitConfig                *pk_config,PolKitAction                *action,PolKitCaller                *caller,PolKitConfigAdminAuthType   *out_admin_auth_type,const char                 **out_data
</FUNCTION>
<STRUCT>
<NAME>PolKitCaller</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_caller_new</NAME>
<RETURNS>PolKitCaller     *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_ref</NAME>
<RETURNS>PolKitCaller     *</RETURNS>
PolKitCaller   *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_unref</NAME>
<RETURNS>void              </RETURNS>
PolKitCaller   *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_set_dbus_name</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, const char     *dbus_name
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_set_uid</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, uid_t           uid
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_set_pid</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, pid_t           pid
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_set_selinux_context</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, const char     *selinux_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_set_ck_session</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, PolKitSession  *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_get_dbus_name</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, char          **out_dbus_name
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_get_uid</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, uid_t          *out_uid
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_get_pid</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, pid_t          *out_pid
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_get_selinux_context</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, char          **out_selinux_context
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_get_ck_session</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller, PolKitSession **out_session
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_debug</NAME>
<RETURNS>void              </RETURNS>
PolKitCaller   *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_caller_validate</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitCaller   *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_debug</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>polkit_debug</NAME>
<RETURNS>void </RETURNS>
const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>polkit_sysdeps_get_start_time_for_pid</NAME>
<RETURNS>polkit_uint64_t </RETURNS>
pid_t pid
</FUNCTION>
<FUNCTION>
<NAME>polkit_sysdeps_get_exe_for_pid</NAME>
<RETURNS>int </RETURNS>
pid_t pid, char *out_buf, size_t buf_size
</FUNCTION>
<FUNCTION>
<NAME>polkit_sysdeps_get_exe_for_pid_with_helper</NAME>
<RETURNS>int </RETURNS>
pid_t pid, char *out_buf, size_t buf_size
</FUNCTION>
<ENUM>
<NAME>PolKitAuthorizationConstraintType</NAME>
typedef enum {
        POLKIT_AUTHORIZATION_CONSTRAINT_TYPE_REQUIRE_LOCAL,
        POLKIT_AUTHORIZATION_CONSTRAINT_TYPE_REQUIRE_ACTIVE,
        POLKIT_AUTHORIZATION_CONSTRAINT_TYPE_REQUIRE_EXE,
        POLKIT_AUTHORIZATION_CONSTRAINT_TYPE_REQUIRE_SELINUX_CONTEXT,
} PolKitAuthorizationConstraintType;
</ENUM>
<STRUCT>
<NAME>PolKitAuthorizationConstraint</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_require_local</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_require_active</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_require_exe</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
const char *path
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_require_selinux_context</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
const char *context
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_ref</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_unref</NAME>
<RETURNS>void                           </RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_debug</NAME>
<RETURNS>void                           </RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_validate</NAME>
<RETURNS>polkit_bool_t                  </RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_type</NAME>
<RETURNS>PolKitAuthorizationConstraintType </RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_exe</NAME>
<RETURNS>const char *</RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_selinux_context</NAME>
<RETURNS>const char *</RETURNS>
PolKitAuthorizationConstraint *authc
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_check_session</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationConstraint *authc,PolKitSession                 *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_check_caller</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationConstraint *authc,PolKitCaller                  *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_to_string</NAME>
<RETURNS>size_t                         </RETURNS>
PolKitAuthorizationConstraint *authc, char *out_buf, size_t buf_size
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_from_string</NAME>
<RETURNS>PolKitAuthorizationConstraint *</RETURNS>
const char *str
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_get_from_caller</NAME>
<RETURNS>int </RETURNS>
PolKitCaller *caller, PolKitAuthorizationConstraint **out_array, size_t array_size
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_constraint_equal</NAME>
<RETURNS>polkit_bool_t                  </RETURNS>
PolKitAuthorizationConstraint *a,PolKitAuthorizationConstraint *b
</FUNCTION>
<STRUCT>
<NAME>PolKitPolicyFile</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>PolKitPolicyFileEntryForeachFunc</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitPolicyFile      *policy_file, 
                                                           PolKitPolicyFileEntry *policy_file_entry,
                                                           void                  *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_new</NAME>
<RETURNS>PolKitPolicyFile *</RETURNS>
const char       *path,polkit_bool_t load_descriptions,PolKitError **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_ref</NAME>
<RETURNS>PolKitPolicyFile *</RETURNS>
PolKitPolicyFile *policy_file
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_unref</NAME>
<RETURNS>void              </RETURNS>
PolKitPolicyFile *policy_file
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_file_entry_foreach</NAME>
<RETURNS>polkit_bool_t     </RETURNS>
PolKitPolicyFile                 *policy_file,PolKitPolicyFileEntryForeachFunc  cb,void                              *user_data
</FUNCTION>
<STRUCT>
<NAME>PolKitSeat</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_seat_new</NAME>
<RETURNS>PolKitSeat   *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_ref</NAME>
<RETURNS>PolKitSeat   *</RETURNS>
PolKitSeat *seat
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_unref</NAME>
<RETURNS>void          </RETURNS>
PolKitSeat *seat
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_set_ck_objref</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitSeat *seat, const char  *ck_objref
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_get_ck_objref</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitSeat *seat, char       **out_ck_objref
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_debug</NAME>
<RETURNS>void          </RETURNS>
PolKitSeat *seat
</FUNCTION>
<FUNCTION>
<NAME>polkit_seat_validate</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitSeat *seat
</FUNCTION>
<STRUCT>
<NAME>PolKitAuthorizationDB</NAME>
</STRUCT>
<ENUM>
<NAME>PolKitAuthorizationDBCapability</NAME>
typedef enum
{
        POLKIT_AUTHORIZATION_DB_CAPABILITY_CAN_OBTAIN = 1 << 0
} PolKitAuthorizationDBCapability;
</ENUM>
<FUNCTION>
<NAME>polkit_authorization_db_get_capabilities</NAME>
<RETURNS>PolKitAuthorizationDBCapability </RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_ref</NAME>
<RETURNS>PolKitAuthorizationDB *</RETURNS>
PolKitAuthorizationDB *authdb
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_unref</NAME>
<RETURNS>void                   </RETURNS>
PolKitAuthorizationDB *authdb
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_debug</NAME>
<RETURNS>void                   </RETURNS>
PolKitAuthorizationDB *authdb
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_validate</NAME>
<RETURNS>polkit_bool_t          </RETURNS>
PolKitAuthorizationDB *authdb
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_is_session_authorized</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitSession         *session,polkit_bool_t         *out_is_authorized,polkit_bool_t         *out_is_negative_authorized,PolKitError          **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_is_caller_authorized</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitCaller          *caller,polkit_bool_t          revoke_if_one_shot,polkit_bool_t         *out_is_authorized,polkit_bool_t         *out_is_negative_authorized,PolKitError          **error
</FUNCTION>
<USER_FUNCTION>
<NAME>PolKitAuthorizationDBForeach</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,
                                                       PolKitAuthorization   *auth, 
                                                       void                  *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_foreach</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB       *authdb,PolKitAuthorizationDBForeach cb,void                        *user_data,PolKitError                **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_foreach_for_uid</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB       *authdb,uid_t                        uid,PolKitAuthorizationDBForeach cb,void                        *user_data,PolKitError                **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_foreach_for_action</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB       *authdb,PolKitAction                *action,PolKitAuthorizationDBForeach cb,void                        *user_data,PolKitError                **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_foreach_for_action_for_uid</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB       *authdb,PolKitAction                *action,uid_t                        uid,PolKitAuthorizationDBForeach cb,void                        *user_data,PolKitError                **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_add_entry_process_one_shot</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitCaller          *caller,uid_t                  user_authenticated_as
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_add_entry_process</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitCaller          *caller,uid_t                  user_authenticated_as
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_add_entry_session</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitCaller          *caller,uid_t                  user_authenticated_as
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_add_entry_always</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,PolKitCaller          *caller,uid_t                  user_authenticated_as
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_grant_to_uid</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB          *authdb,PolKitAction                   *action,uid_t                           uid,PolKitAuthorizationConstraint **constraints,PolKitError                   **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_grant_negative_to_uid</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB          *authdb,PolKitAction                   *action,uid_t                           uid,PolKitAuthorizationConstraint **constraints,PolKitError                   **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_revoke_entry</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAuthorization *auth,PolKitError **error
</FUNCTION>
<FUNCTION>
<NAME>polkit_authorization_db_is_uid_blocked_by_self</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitAuthorizationDB *authdb,PolKitAction          *action,uid_t                  uid,PolKitError          **error
</FUNCTION>
<STRUCT>
<NAME>PolKitAuthorizationDB</NAME>
struct _PolKitAuthorizationDB
{
        /*< private >*/
        int refcount;
};
</STRUCT>
<STRUCT>
<NAME>PolKitAuthorizationDB</NAME>
struct _PolKitAuthorizationDB
{
        /*< private >*/
        int refcount;
        KitHash *uid_to_authlist;
};
</STRUCT>
<ENUM>
<NAME>PolKitErrorCode</NAME>
typedef enum
{      
        POLKIT_ERROR_OUT_OF_MEMORY,
        POLKIT_ERROR_POLICY_FILE_INVALID,
        POLKIT_ERROR_GENERAL_ERROR,
        POLKIT_ERROR_NOT_AUTHORIZED_TO_READ_AUTHORIZATIONS_FOR_OTHER_USERS,
        POLKIT_ERROR_NOT_AUTHORIZED_TO_REVOKE_AUTHORIZATIONS_FROM_OTHER_USERS,
        POLKIT_ERROR_NOT_AUTHORIZED_TO_GRANT_AUTHORIZATION,
        POLKIT_ERROR_AUTHORIZATION_ALREADY_EXISTS,
        POLKIT_ERROR_NOT_SUPPORTED,
        POLKIT_ERROR_NOT_AUTHORIZED_TO_MODIFY_DEFAULTS,

        POLKIT_ERROR_NUM_ERROR_CODES
} PolKitErrorCode;
</ENUM>
<STRUCT>
<NAME>PolKitError</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_error_is_set</NAME>
<RETURNS>polkit_bool_t    </RETURNS>
PolKitError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_get_error_name</NAME>
<RETURNS>const char      *</RETURNS>
PolKitError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_get_error_code</NAME>
<RETURNS>PolKitErrorCode  </RETURNS>
PolKitError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_get_error_message</NAME>
<RETURNS>const char      *</RETURNS>
PolKitError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_free</NAME>
<RETURNS>void             </RETURNS>
PolKitError *error
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_set_error</NAME>
<RETURNS>polkit_bool_t    </RETURNS>
PolKitError **error, PolKitErrorCode error_code, const char *format, ...
</FUNCTION>
<FUNCTION>
<NAME>polkit_error_set_error</NAME>
<RETURNS>polkit_bool_t    </RETURNS>
PolKitError **error, PolKitErrorCode error_code, const char *format, ...
</FUNCTION>
<STRUCT>
<NAME>PolKitPolicyDefault</NAME>
</STRUCT>
<FUNCTION>
<NAME>polkit_policy_default_new</NAME>
<RETURNS>PolKitPolicyDefault    *</RETURNS>
void
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_ref</NAME>
<RETURNS>PolKitPolicyDefault    *</RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_unref</NAME>
<RETURNS>void                    </RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_debug</NAME>
<RETURNS>void                    </RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_clone</NAME>
<RETURNS>PolKitPolicyDefault    *</RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_equals</NAME>
<RETURNS>polkit_bool_t           </RETURNS>
PolKitPolicyDefault *a, PolKitPolicyDefault *b
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_can_session_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitPolicyDefault *policy_default,PolKitAction        *action,PolKitSession       *session
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_can_caller_do_action</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitPolicyDefault *policy_default,PolKitAction        *action,PolKitCaller        *caller
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_get_allow_any</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_get_allow_inactive</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_get_allow_active</NAME>
<RETURNS>PolKitResult </RETURNS>
PolKitPolicyDefault *policy_default
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_set_allow_any</NAME>
<RETURNS>void         </RETURNS>
PolKitPolicyDefault *policy_default, PolKitResult value
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_set_allow_inactive</NAME>
<RETURNS>void         </RETURNS>
PolKitPolicyDefault *policy_default, PolKitResult value
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_default_set_allow_active</NAME>
<RETURNS>void         </RETURNS>
PolKitPolicyDefault *policy_default, PolKitResult value
</FUNCTION>
<STRUCT>
<NAME>PolKitPolicyCache</NAME>
</STRUCT>
<USER_FUNCTION>
<NAME>PolKitPolicyCacheForeachFunc</NAME>
<RETURNS>polkit_bool_t </RETURNS>
PolKitPolicyCache *policy_cache,
                                                       PolKitPolicyFileEntry *entry,
                                                       void *user_data
</USER_FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_ref</NAME>
<RETURNS>PolKitPolicyCache     *</RETURNS>
PolKitPolicyCache *policy_cache
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_unref</NAME>
<RETURNS>void                   </RETURNS>
PolKitPolicyCache *policy_cache
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_debug</NAME>
<RETURNS>void                   </RETURNS>
PolKitPolicyCache *policy_cache
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_get_entry</NAME>
<RETURNS>PolKitPolicyFileEntry*</RETURNS>
PolKitPolicyCache *policy_cache,PolKitAction *action
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_get_entry_by_id</NAME>
<RETURNS>PolKitPolicyFileEntry*</RETURNS>
PolKitPolicyCache *policy_cache,const char *action_id
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_get_entry_by_annotation</NAME>
<RETURNS>PolKitPolicyFileEntry*</RETURNS>
PolKitPolicyCache *policy_cache,const char *annotation_key,const char *annotation_value
</FUNCTION>
<FUNCTION>
<NAME>polkit_policy_cache_foreach</NAME>
<RETURNS>polkit_bool_t          </RETURNS>
PolKitPolicyCache *policy_cache,PolKitPolicyCacheForeachFunc callback,void *user_data
</FUNCTION>
