#ifndef _S_CONTROLLER_H
#define _S_CONTROLLER_H
#include <sys/types.h>
#include <sys/queue.h>
#include <mach/mach.h>
#include <CoreFoundation/CFDictionary.h>
#include <CoreFoundation/CFString.h>
#include <TargetConditionals.h>
#include "eapolcontroller_types.h"
int
ControllerCopyStateAndStatus(if_name_t if_name,
int * state,
CFDictionaryRef * status_dict);
int
ControllerGetState(if_name_t if_name, int * state);
int
ControllerStart(if_name_t if_name, uid_t uid, gid_t gid,
CFDictionaryRef config_dict, mach_port_t bootstrap,
mach_port_t au_session);
int
ControllerStartSystem(if_name_t if_name, uid_t uid, gid_t gid,
CFDictionaryRef options);
int
ControllerUpdate(if_name_t if_name, uid_t uid, gid_t gid,
CFDictionaryRef config_dict);
int
ControllerProvideUserInput(if_name_t if_name, uid_t uid, gid_t gid,
CFDictionaryRef user_input_dict);
int
ControllerRetry(if_name_t if_name, uid_t uid, gid_t gid);
int
ControllerStop(if_name_t if_name, uid_t uid, gid_t gid);
#if ! TARGET_OS_EMBEDDED
int
ControllerCopyLoginWindowConfiguration(if_name_t if_name,
CFDictionaryRef * config_data_p);
int
ControllerCopyAutoDetectInformation(CFDictionaryRef * info_p);
boolean_t
ControllerDidUserCancel(if_name_t if_name);
#endif
int
ControllerClientAttach(pid_t pid, if_name_t if_name,
mach_port_t notify_port,
mach_port_t * session_port,
CFDictionaryRef * control_dict,
mach_port_t * bootstrap,
mach_port_t * au_session);
int
ControllerClientDetach(mach_port_t session_port);
int
ControllerClientGetConfig(mach_port_t session_port,
CFDictionaryRef * control_dict);
int
ControllerClientReportStatus(mach_port_t session_port,
CFDictionaryRef status_dict);
int
ControllerClientForceRenew(mach_port_t session_port);
int
ControllerClientPortDead(mach_port_t session_port);
#if ! TARGET_OS_EMBEDDED
int
ControllerClientUserCancelled(mach_port_t session_port);
#endif
#endif