]> rtime.felk.cvut.cz Git - frescor/frsh-forb.git/blobdiff - src/fwp/fwp/mngr/fwp_admctrl.h
Added mutex to ensure atomicity of linked list operations
[frescor/frsh-forb.git] / src / fwp / fwp / mngr / fwp_admctrl.h
index 481609eed2c8f95d77c0e7fb6c5778330c0bb55f..0703fb96674c2ba122e3877993249bbba36211cd 100644 (file)
 
 #define SIZE_MAC_ADDR 20
 
-typedef struct ap_node {
-       char mac_addr[SIZE_MAC_ADDR];
+typedef struct fwp_sta {
+       long long client_mac_addr;
        int rate;       //mbps
-       ul_list_node_t ap;      
-} ap_node_t;
+       bool erp_ofdm;
+       bool short_preamble;
+       bool bypass;
+       ul_list_node_t sta_node;        
+} fwp_sta_t;
 
-typedef struct wifi_list {
+typedef struct fwp_sta_list {
        ul_list_head_t requests;
-} wifi_list_t;
-
-UL_LIST_CUST_DEC(ap_list, /* cust_prefix */
-                wifi_list_t, /* cust_head_t */
-                ap_node_t, /* cust_item_t */
-                requests, /* cust_head_field */
-                ap); /* cust_node_field */
+} fwp_sta_list_t;
 
 struct frm_fwp_priv {
        int rate_mbps;
        bool erp_ofdm;
        bool short_preamble;
        bool bypass;
-       wifi_list_t list_head;
+       fwp_sta_list_t sta_list;
+       pthread_mutex_t mutex;
 };
 
+UL_LIST_CUST_DEC(sta_list, /* cust_prefix */
+                fwp_sta_list_t, /* cust_head_t */
+                fwp_sta_t, /* cust_item_t */
+                requests, /* cust_head_field */
+                sta_node); /* cust_node_field */
+
 int fwp_admctrl_utilization(struct fres_sa_scenario *scenario, void *priv,
                                 bool *schedulable);