/* Copyright (C) 2005 Red Hat, Inc. */
#ifndef _SEMANAGE_SEUSER_RECORD_H_
#define _SEMANAGE_SEUSER_RECORD_H_
#include <semanage/handle.h>
struct semanage_seuser;
struct semanage_seuser_key;
typedef struct semanage_seuser semanage_seuser_t;
typedef struct semanage_seuser_key semanage_seuser_key_t;
/* Key */
extern int semanage_seuser_key_create(semanage_handle_t * handle,
const char *name,
semanage_seuser_key_t ** key);
extern int semanage_seuser_key_extract(semanage_handle_t * handle,
const semanage_seuser_t * seuser,
semanage_seuser_key_t ** key);
extern void semanage_seuser_key_free(semanage_seuser_key_t * key);
extern int semanage_seuser_compare(const semanage_seuser_t * seuser,
const semanage_seuser_key_t * key);
extern int semanage_seuser_compare2(const semanage_seuser_t * seuser,
const semanage_seuser_t * seuser2);
/* Name */
extern const char *semanage_seuser_get_name(const semanage_seuser_t * seuser);
extern int semanage_seuser_set_name(semanage_handle_t * handle,
semanage_seuser_t * seuser,
const char *name);
/* Selinux Name */
extern const char *semanage_seuser_get_sename(const semanage_seuser_t * seuser);
extern int semanage_seuser_set_sename(semanage_handle_t * handle,
semanage_seuser_t * seuser,
const char *sename);
/* MLS */
extern const char *semanage_seuser_get_mlsrange(const semanage_seuser_t *
seuser);
extern int semanage_seuser_set_mlsrange(semanage_handle_t * handle,
semanage_seuser_t * seuser,
const char *mls_range);
/* Create/Clone/Destroy */
extern int semanage_seuser_create(semanage_handle_t * handle,
semanage_seuser_t ** seuser_ptr);
extern int semanage_seuser_clone(semanage_handle_t * handle,
const semanage_seuser_t * seuser,
semanage_seuser_t ** seuser_ptr);
extern void semanage_seuser_free(semanage_seuser_t * seuser);
#endif