00001
00013 #ifndef _APM_TASK_H_
00014 #define _APM_TASK_H_
00015
00022
00023
00024
00025
00026
00027
00028 #include "ke_task.h"
00029
00030 #include "apm.h"
00031
00032 #include "scan.h"
00033
00034 #if NX_BEACONING
00035
00037 #define APM_IDX_MAX 1
00038
00040 enum apm_state_tag
00041 {
00043 APM_IDLE,
00045 APM_BSS_PARAM_SETTING,
00047 APM_BCN_SETTING,
00049 APM_STOPPING,
00051 APM_STATE_MAX
00052 };
00053
00055 enum apm_msg_tag
00056 {
00058 APM_START_REQ = KE_FIRST_MSG(TASK_APM),
00060 APM_START_CFM,
00062 APM_STOP_REQ,
00064 APM_STOP_CFM,
00066 APM_START_CAC_REQ,
00068 APM_START_CAC_CFM,
00070 APM_STOP_CAC_REQ,
00072 APM_STOP_CAC_CFM,
00073 };
00074
00076 struct apm_start_req
00077 {
00079 struct mac_rateset basic_rates;
00081 struct mac_chan_op chan;
00083 uint32_t bcn_addr;
00085 uint16_t bcn_len;
00087 uint16_t tim_oft;
00089 uint16_t bcn_int;
00091 uint32_t flags;
00093 uint16_t ctrl_port_ethertype;
00095 uint8_t tim_len;
00097 uint8_t vif_idx;
00098 };
00099
00101 struct apm_start_cfm
00102 {
00104 uint8_t status;
00106 uint8_t vif_idx;
00108 uint8_t ch_idx;
00110 uint8_t bcmc_idx;
00111 };
00112
00114 struct apm_stop_req
00115 {
00117 uint8_t vif_idx;
00118 };
00119
00121 struct apm_start_cac_req
00122 {
00124 struct mac_chan_op chan;
00126 uint8_t vif_idx;
00127 };
00128
00130 struct apm_start_cac_cfm
00131 {
00133 uint8_t status;
00135 uint8_t ch_idx;
00136 };
00137
00139 struct apm_stop_cac_req
00140 {
00142 uint8_t vif_idx;
00143 };
00144
00145 extern const struct ke_state_handler apm_default_handler;
00146
00147 extern ke_state_t apm_state[APM_IDX_MAX];
00148
00149 #endif
00150
00152
00153 #endif // _APM_TASK_H_