#ifndef _LIBSHARE_SMBFS_H
#define _LIBSHARE_SMBFS_H
#ifdef __cplusplus
extern "C" {
#endif
struct smbclnt_proto_option_defs {
char *name;
char *value;
int index;
int flags;
int32_t minval;
int32_t maxval;
int (*validator)(int, char *, char *);
};
extern struct smbclnt_proto_option_defs smbclnt_proto_options[];
#define PROTO_OPT_SECTION 0
#define PROTO_OPT_ADDR 1
#define PROTO_OPT_MINAUTH 2
#define PROTO_OPT_NBNS_BROADCAST 3
#define PROTO_OPT_NBNS_ENABLE 4
#define PROTO_OPT_NBNSADDR 5
#define PROTO_OPT_PASSWORD 6
#define PROTO_OPT_TIMEOUT 7
#define PROTO_OPT_USER 8
#define PROTO_OPT_DOMAIN 9
#define PROTO_OPT_WORKGROUP 10
#define PROTO_OPT_SIGNING 11
#define PROTO_OPT_MIN_PROTOCOL 12
#define PROTO_OPT_MAX_PROTOCOL 13
#define SMBC_OPT_MAX PROTO_OPT_MAX_PROTOCOL
#define SMBC_MODIFIED 0x01
#define MAX_VALUE_BUFLEN 600
#define SMBC_FMRI_PREFIX "network/smb/client"
#define SMBC_DEFAULT_INSTANCE_FMRI "svc:/network/smb/client:default"
#define SMBC_PG_PREFIX "S-"
#define SMBC_PG_PREFIX_LEN 2
#define SMBC_PG_INSTANCE "default"
#define SMBC_SMF_OK 0
#define SMBC_SMF_NO_MEMORY 1
#define SMBC_SMF_SYSTEM_ERR 2
#define SMBC_SMF_NO_PERMISSION 3
#define SCH_STATE_UNINIT 0
#define SCH_STATE_INITIALIZING 1
#define SCH_STATE_INIT 2
typedef struct smb_scfhandle {
scf_handle_t *scf_handle;
int scf_state;
scf_service_t *scf_service;
scf_scope_t *scf_scope;
scf_transaction_t *scf_trans;
scf_transaction_entry_t *scf_entry;
scf_propertygroup_t *scf_pg;
scf_instance_t *scf_instance;
scf_iter_t *scf_inst_iter;
scf_iter_t *scf_pg_iter;
} smb_scfhandle_t;
extern void smb_smf_scf_fini(smb_scfhandle_t *);
extern smb_scfhandle_t *smb_smf_scf_init(char *);
extern int smb_smf_get_instance(smb_scfhandle_t *, char *);
extern int smb_smf_create_instance(smb_scfhandle_t *, char *);
extern int smb_smf_start_transaction(smb_scfhandle_t *);
extern int smb_smf_end_transaction(smb_scfhandle_t *);
extern int smb_smf_set_string_property(smb_scfhandle_t *, char *, char *);
extern int smb_smf_get_string_property(smb_scfhandle_t *, char *,
char *, size_t);
extern int smb_smf_set_integer_property(smb_scfhandle_t *, char *, int64_t);
extern int smb_smf_get_integer_property(smb_scfhandle_t *, char *, int64_t *);
extern int smb_smf_set_boolean_property(smb_scfhandle_t *, char *, uint8_t);
extern int smb_smf_get_boolean_property(smb_scfhandle_t *, char *, uint8_t *);
extern int smb_smf_set_opaque_property(smb_scfhandle_t *, char *,
void *, size_t);
extern int smb_smf_get_opaque_property(smb_scfhandle_t *, char *,
void *, size_t);
extern int smb_smf_create_service_pgroup(smb_scfhandle_t *, char *);
extern int smb_smf_delete_service_pgroup(smb_scfhandle_t *, char *);
extern int smb_smf_create_instance_pgroup(smb_scfhandle_t *, char *);
extern int smb_smf_delete_instance_pgroup(smb_scfhandle_t *, char *);
extern int smb_smf_delete_property(smb_scfhandle_t *, char *);
extern int smb_smf_instance_exists(smb_scfhandle_t *, char *);
extern int smb_smf_instance_create(smb_scfhandle_t *, char *, char *);
extern int smb_smf_instance_delete(smb_scfhandle_t *, char *);
extern smb_scfhandle_t *smb_smf_get_iterator(char *);
#ifdef __cplusplus
}
#endif
#endif