diff options
Diffstat (limited to 'drivers/staging/ath6kl/os/linux/ioctl.c')
-rw-r--r-- | drivers/staging/ath6kl/os/linux/ioctl.c | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/drivers/staging/ath6kl/os/linux/ioctl.c b/drivers/staging/ath6kl/os/linux/ioctl.c index 4403d1a61e7..c6e44ba2bd5 100644 --- a/drivers/staging/ath6kl/os/linux/ioctl.c +++ b/drivers/staging/ath6kl/os/linux/ioctl.c | |||
@@ -76,7 +76,7 @@ ar6000_ioctl_set_roam_ctrl(struct net_device *dev, char *userdata) | |||
76 | { | 76 | { |
77 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); | 77 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); |
78 | WMI_SET_ROAM_CTRL_CMD cmd; | 78 | WMI_SET_ROAM_CTRL_CMD cmd; |
79 | A_UINT8 size = sizeof(cmd); | 79 | u8 size = sizeof(cmd); |
80 | 80 | ||
81 | if (ar->arWmiReady == false) { | 81 | if (ar->arWmiReady == false) { |
82 | return -EIO; | 82 | return -EIO; |
@@ -109,7 +109,7 @@ ar6000_ioctl_set_powersave_timers(struct net_device *dev, char *userdata) | |||
109 | { | 109 | { |
110 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); | 110 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); |
111 | WMI_POWERSAVE_TIMERS_POLICY_CMD cmd; | 111 | WMI_POWERSAVE_TIMERS_POLICY_CMD cmd; |
112 | A_UINT8 size = sizeof(cmd); | 112 | u8 size = sizeof(cmd); |
113 | 113 | ||
114 | if (ar->arWmiReady == false) { | 114 | if (ar->arWmiReady == false) { |
115 | return -EIO; | 115 | return -EIO; |
@@ -663,7 +663,7 @@ ar6000_ioctl_get_qos_queue(struct net_device *dev, struct ifreq *rq) | |||
663 | #ifdef CONFIG_HOST_TCMD_SUPPORT | 663 | #ifdef CONFIG_HOST_TCMD_SUPPORT |
664 | static int | 664 | static int |
665 | ar6000_ioctl_tcmd_get_rx_report(struct net_device *dev, | 665 | ar6000_ioctl_tcmd_get_rx_report(struct net_device *dev, |
666 | struct ifreq *rq, A_UINT8 *data, A_UINT32 len) | 666 | struct ifreq *rq, u8 *data, A_UINT32 len) |
667 | { | 667 | { |
668 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); | 668 | AR_SOFTC_T *ar = (AR_SOFTC_T *)ar6k_priv(dev); |
669 | A_UINT32 buf[4+TCMD_MAX_RATES]; | 669 | A_UINT32 buf[4+TCMD_MAX_RATES]; |
@@ -715,7 +715,7 @@ ar6000_ioctl_tcmd_get_rx_report(struct net_device *dev, | |||
715 | } | 715 | } |
716 | 716 | ||
717 | void | 717 | void |
718 | ar6000_tcmd_rx_report_event(void *devt, A_UINT8 * results, int len) | 718 | ar6000_tcmd_rx_report_event(void *devt, u8 *results, int len) |
719 | { | 719 | { |
720 | AR_SOFTC_T *ar = (AR_SOFTC_T *)devt; | 720 | AR_SOFTC_T *ar = (AR_SOFTC_T *)devt; |
721 | TCMD_CONT_RX * rx_rep = (TCMD_CONT_RX *)results; | 721 | TCMD_CONT_RX * rx_rep = (TCMD_CONT_RX *)results; |
@@ -843,7 +843,7 @@ ar6000_ioctl_get_ap_stats(struct net_device *dev, struct ifreq *rq) | |||
843 | return -EFAULT; | 843 | return -EFAULT; |
844 | } | 844 | } |
845 | if (action == AP_CLEAR_STATS) { | 845 | if (action == AP_CLEAR_STATS) { |
846 | A_UINT8 i; | 846 | u8 i; |
847 | AR6000_SPIN_LOCK(&ar->arLock, 0); | 847 | AR6000_SPIN_LOCK(&ar->arLock, 0); |
848 | for(i = 0; i < AP_MAX_NUM_STA; i++) { | 848 | for(i = 0; i < AP_MAX_NUM_STA; i++) { |
849 | pStats->sta[i].tx_bytes = 0; | 849 | pStats->sta[i].tx_bytes = 0; |
@@ -1469,12 +1469,12 @@ prof_count_rx(A_UINT32 addr, A_UINT32 count) | |||
1469 | 1469 | ||
1470 | 1470 | ||
1471 | static int | 1471 | static int |
1472 | ar6000_create_acl_data_osbuf(struct net_device *dev, A_UINT8 *userdata, void **p_osbuf) | 1472 | ar6000_create_acl_data_osbuf(struct net_device *dev, u8 *userdata, void **p_osbuf) |
1473 | { | 1473 | { |
1474 | void *osbuf = NULL; | 1474 | void *osbuf = NULL; |
1475 | A_UINT8 tmp_space[8]; | 1475 | u8 tmp_space[8]; |
1476 | HCI_ACL_DATA_PKT *acl; | 1476 | HCI_ACL_DATA_PKT *acl; |
1477 | A_UINT8 hdr_size, *datap=NULL; | 1477 | u8 hdr_size, *datap=NULL; |
1478 | int ret = A_OK; | 1478 | int ret = A_OK; |
1479 | 1479 | ||
1480 | /* ACL is in data path. There is a need to create pool | 1480 | /* ACL is in data path. There is a need to create pool |
@@ -1497,7 +1497,7 @@ ar6000_create_acl_data_osbuf(struct net_device *dev, A_UINT8 *userdata, void **p | |||
1497 | break; | 1497 | break; |
1498 | } | 1498 | } |
1499 | A_NETBUF_PUT(osbuf, hdr_size + acl->data_len); | 1499 | A_NETBUF_PUT(osbuf, hdr_size + acl->data_len); |
1500 | datap = (A_UINT8 *)A_NETBUF_DATA(osbuf); | 1500 | datap = (u8 *)A_NETBUF_DATA(osbuf); |
1501 | 1501 | ||
1502 | /* Real copy to osbuf */ | 1502 | /* Real copy to osbuf */ |
1503 | acl = (HCI_ACL_DATA_PKT *)(datap); | 1503 | acl = (HCI_ACL_DATA_PKT *)(datap); |
@@ -1822,7 +1822,7 @@ ar6000_ioctl_setkey(AR_SOFTC_T *ar, struct ieee80211req_key *ik) | |||
1822 | } | 1822 | } |
1823 | 1823 | ||
1824 | status = wmi_addKey_cmd(ar->arWmi, ik->ik_keyix, keyType, keyUsage, | 1824 | status = wmi_addKey_cmd(ar->arWmi, ik->ik_keyix, keyType, keyUsage, |
1825 | ik->ik_keylen, (A_UINT8 *)&ik->ik_keyrsc, | 1825 | ik->ik_keylen, (u8 *)&ik->ik_keyrsc, |
1826 | ik->ik_keydata, KEY_OP_INIT_VAL, ik->ik_macaddr, | 1826 | ik->ik_keydata, KEY_OP_INIT_VAL, ik->ik_macaddr, |
1827 | SYNC_BOTH_WMIFLAG); | 1827 | SYNC_BOTH_WMIFLAG); |
1828 | 1828 | ||
@@ -2027,7 +2027,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2027 | ret = -EFAULT; | 2027 | ret = -EFAULT; |
2028 | goto ioctl_done; | 2028 | goto ioctl_done; |
2029 | } else { | 2029 | } else { |
2030 | wmi_test_cmd(ar->arWmi,(A_UINT8 *)&txCmd, sizeof(TCMD_CONT_TX)); | 2030 | wmi_test_cmd(ar->arWmi,(u8 *)&txCmd, sizeof(TCMD_CONT_TX)); |
2031 | } | 2031 | } |
2032 | } | 2032 | } |
2033 | break; | 2033 | break; |
@@ -2053,13 +2053,13 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2053 | case TCMD_CONT_RX_FILTER: | 2053 | case TCMD_CONT_RX_FILTER: |
2054 | case TCMD_CONT_RX_SETMAC: | 2054 | case TCMD_CONT_RX_SETMAC: |
2055 | case TCMD_CONT_RX_SET_ANT_SWITCH_TABLE: | 2055 | case TCMD_CONT_RX_SET_ANT_SWITCH_TABLE: |
2056 | wmi_test_cmd(ar->arWmi,(A_UINT8 *)&rxCmd, | 2056 | wmi_test_cmd(ar->arWmi,(u8 *)&rxCmd, |
2057 | sizeof(TCMD_CONT_RX)); | 2057 | sizeof(TCMD_CONT_RX)); |
2058 | tcmdRxFreq = rxCmd.u.para.freq; | 2058 | tcmdRxFreq = rxCmd.u.para.freq; |
2059 | break; | 2059 | break; |
2060 | case TCMD_CONT_RX_REPORT: | 2060 | case TCMD_CONT_RX_REPORT: |
2061 | ar6000_ioctl_tcmd_get_rx_report(dev, rq, | 2061 | ar6000_ioctl_tcmd_get_rx_report(dev, rq, |
2062 | (A_UINT8 *)&rxCmd, sizeof(TCMD_CONT_RX)); | 2062 | (u8 *)&rxCmd, sizeof(TCMD_CONT_RX)); |
2063 | break; | 2063 | break; |
2064 | default: | 2064 | default: |
2065 | A_PRINTF("Unknown Cont Rx mode: %d\n",rxCmd.act); | 2065 | A_PRINTF("Unknown Cont Rx mode: %d\n",rxCmd.act); |
@@ -2077,7 +2077,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2077 | goto ioctl_done; | 2077 | goto ioctl_done; |
2078 | } | 2078 | } |
2079 | ar->tcmdPm = pmCmd.mode; | 2079 | ar->tcmdPm = pmCmd.mode; |
2080 | wmi_test_cmd(ar->arWmi, (A_UINT8*)&pmCmd, sizeof(TCMD_PM)); | 2080 | wmi_test_cmd(ar->arWmi, (u8 *)&pmCmd, sizeof(TCMD_PM)); |
2081 | } | 2081 | } |
2082 | break; | 2082 | break; |
2083 | #endif /* CONFIG_HOST_TCMD_SUPPORT */ | 2083 | #endif /* CONFIG_HOST_TCMD_SUPPORT */ |
@@ -2705,7 +2705,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
2705 | case AR6000_IOCTL_WMI_SET_ASSOC_INFO: | 2705 | case AR6000_IOCTL_WMI_SET_ASSOC_INFO: |
2706 | { | 2706 | { |
2707 | WMI_SET_ASSOC_INFO_CMD cmd; | 2707 | WMI_SET_ASSOC_INFO_CMD cmd; |
2708 | A_UINT8 assocInfo[WMI_MAX_ASSOC_INFO_LEN]; | 2708 | u8 assocInfo[WMI_MAX_ASSOC_INFO_LEN]; |
2709 | 2709 | ||
2710 | if (ar->arWmiReady == false) { | 2710 | if (ar->arWmiReady == false) { |
2711 | ret = -EIO; | 2711 | ret = -EIO; |
@@ -3141,7 +3141,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
3141 | case AR6000_XIOCTL_OPT_SEND_FRAME: | 3141 | case AR6000_XIOCTL_OPT_SEND_FRAME: |
3142 | { | 3142 | { |
3143 | WMI_OPT_TX_FRAME_CMD optTxFrmCmd; | 3143 | WMI_OPT_TX_FRAME_CMD optTxFrmCmd; |
3144 | A_UINT8 data[MAX_OPT_DATA_LEN]; | 3144 | u8 data[MAX_OPT_DATA_LEN]; |
3145 | 3145 | ||
3146 | if (ar->arWmiReady == false) { | 3146 | if (ar->arWmiReady == false) { |
3147 | ret = -EIO; | 3147 | ret = -EIO; |
@@ -3646,7 +3646,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
3646 | case AR6000_XIOCTL_WMI_SET_APPIE: | 3646 | case AR6000_XIOCTL_WMI_SET_APPIE: |
3647 | { | 3647 | { |
3648 | WMI_SET_APPIE_CMD appIEcmd; | 3648 | WMI_SET_APPIE_CMD appIEcmd; |
3649 | A_UINT8 appIeInfo[IEEE80211_APPIE_FRAME_MAX_LEN]; | 3649 | u8 appIeInfo[IEEE80211_APPIE_FRAME_MAX_LEN]; |
3650 | A_UINT32 fType,ieLen; | 3650 | A_UINT32 fType,ieLen; |
3651 | 3651 | ||
3652 | if (ar->arWmiReady == false) { | 3652 | if (ar->arWmiReady == false) { |
@@ -3883,8 +3883,8 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
3883 | #define WOW_MASK_SIZE 64 | 3883 | #define WOW_MASK_SIZE 64 |
3884 | 3884 | ||
3885 | WMI_ADD_WOW_PATTERN_CMD cmd; | 3885 | WMI_ADD_WOW_PATTERN_CMD cmd; |
3886 | A_UINT8 mask_data[WOW_PATTERN_SIZE]={0}; | 3886 | u8 mask_data[WOW_PATTERN_SIZE]={0}; |
3887 | A_UINT8 pattern_data[WOW_PATTERN_SIZE]={0}; | 3887 | u8 pattern_data[WOW_PATTERN_SIZE]={0}; |
3888 | 3888 | ||
3889 | do { | 3889 | do { |
3890 | if (ar->arWmiReady == false) { | 3890 | if (ar->arWmiReady == false) { |
@@ -3997,7 +3997,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
3997 | /* note, this is used for testing (mbox ping testing), indicate activity | 3997 | /* note, this is used for testing (mbox ping testing), indicate activity |
3998 | * change using the stream ID as the traffic class */ | 3998 | * change using the stream ID as the traffic class */ |
3999 | ar6000_indicate_tx_activity(ar, | 3999 | ar6000_indicate_tx_activity(ar, |
4000 | (A_UINT8)data.StreamID, | 4000 | (u8)data.StreamID, |
4001 | data.Active ? true : false); | 4001 | data.Active ? true : false); |
4002 | } | 4002 | } |
4003 | break; | 4003 | break; |
@@ -4064,7 +4064,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4064 | break; | 4064 | break; |
4065 | case AR6000_XIOCTL_AP_HIDDEN_SSID: | 4065 | case AR6000_XIOCTL_AP_HIDDEN_SSID: |
4066 | { | 4066 | { |
4067 | A_UINT8 hidden_ssid; | 4067 | u8 hidden_ssid; |
4068 | if (ar->arWmiReady == false) { | 4068 | if (ar->arWmiReady == false) { |
4069 | ret = -EIO; | 4069 | ret = -EIO; |
4070 | } else if (copy_from_user(&hidden_ssid, userdata, sizeof(hidden_ssid))) { | 4070 | } else if (copy_from_user(&hidden_ssid, userdata, sizeof(hidden_ssid))) { |
@@ -4081,7 +4081,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4081 | if (ar->arWmiReady == false) { | 4081 | if (ar->arWmiReady == false) { |
4082 | ret = -EIO; | 4082 | ret = -EIO; |
4083 | } else { | 4083 | } else { |
4084 | A_UINT8 i; | 4084 | u8 i; |
4085 | ap_get_sta_t temp; | 4085 | ap_get_sta_t temp; |
4086 | A_MEMZERO(&temp, sizeof(temp)); | 4086 | A_MEMZERO(&temp, sizeof(temp)); |
4087 | for(i=0;i<AP_MAX_NUM_STA;i++) { | 4087 | for(i=0;i<AP_MAX_NUM_STA;i++) { |
@@ -4100,7 +4100,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4100 | } | 4100 | } |
4101 | case AR6000_XIOCTL_AP_SET_NUM_STA: | 4101 | case AR6000_XIOCTL_AP_SET_NUM_STA: |
4102 | { | 4102 | { |
4103 | A_UINT8 num_sta; | 4103 | u8 num_sta; |
4104 | if (ar->arWmiReady == false) { | 4104 | if (ar->arWmiReady == false) { |
4105 | ret = -EIO; | 4105 | ret = -EIO; |
4106 | } else if (copy_from_user(&num_sta, userdata, sizeof(num_sta))) { | 4106 | } else if (copy_from_user(&num_sta, userdata, sizeof(num_sta))) { |
@@ -4115,7 +4115,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4115 | } | 4115 | } |
4116 | case AR6000_XIOCTL_AP_SET_ACL_POLICY: | 4116 | case AR6000_XIOCTL_AP_SET_ACL_POLICY: |
4117 | { | 4117 | { |
4118 | A_UINT8 policy; | 4118 | u8 policy; |
4119 | if (ar->arWmiReady == false) { | 4119 | if (ar->arWmiReady == false) { |
4120 | ret = -EIO; | 4120 | ret = -EIO; |
4121 | } else if (copy_from_user(&policy, userdata, sizeof(policy))) { | 4121 | } else if (copy_from_user(&policy, userdata, sizeof(policy))) { |
@@ -4243,7 +4243,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4243 | } | 4243 | } |
4244 | case AR6000_XIOCTL_AP_INTRA_BSS_COMM: | 4244 | case AR6000_XIOCTL_AP_INTRA_BSS_COMM: |
4245 | { | 4245 | { |
4246 | A_UINT8 intra=0; | 4246 | u8 intra=0; |
4247 | if (ar->arWmiReady == false) { | 4247 | if (ar->arWmiReady == false) { |
4248 | ret = -EIO; | 4248 | ret = -EIO; |
4249 | } else if (copy_from_user(&intra, userdata, sizeof(intra))) { | 4249 | } else if (copy_from_user(&intra, userdata, sizeof(intra))) { |
@@ -4395,7 +4395,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4395 | void *osbuf = NULL; | 4395 | void *osbuf = NULL; |
4396 | if (ar->arWmiReady == false) { | 4396 | if (ar->arWmiReady == false) { |
4397 | ret = -EIO; | 4397 | ret = -EIO; |
4398 | } else if (ar6000_create_acl_data_osbuf(dev, (A_UINT8*)userdata, &osbuf) != A_OK) { | 4398 | } else if (ar6000_create_acl_data_osbuf(dev, (u8 *)userdata, &osbuf) != A_OK) { |
4399 | ret = -EIO; | 4399 | ret = -EIO; |
4400 | } else { | 4400 | } else { |
4401 | if (wmi_data_hdr_add(ar->arWmi, osbuf, DATA_MSGTYPE, 0, WMI_DATA_HDR_DATA_TYPE_ACL,0,NULL) != A_OK) { | 4401 | if (wmi_data_hdr_add(ar->arWmi, osbuf, DATA_MSGTYPE, 0, WMI_DATA_HDR_DATA_TYPE_ACL,0,NULL) != A_OK) { |
@@ -4412,7 +4412,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4412 | char tmp_buf[512]; | 4412 | char tmp_buf[512]; |
4413 | A_INT8 i; | 4413 | A_INT8 i; |
4414 | WMI_HCI_CMD *cmd = (WMI_HCI_CMD *)tmp_buf; | 4414 | WMI_HCI_CMD *cmd = (WMI_HCI_CMD *)tmp_buf; |
4415 | A_UINT8 size; | 4415 | u8 size; |
4416 | 4416 | ||
4417 | size = sizeof(cmd->cmd_buf_sz); | 4417 | size = sizeof(cmd->cmd_buf_sz); |
4418 | if (ar->arWmiReady == false) { | 4418 | if (ar->arWmiReady == false) { |
@@ -4511,8 +4511,8 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4511 | { | 4511 | { |
4512 | if (ar->arWmiReady == false) { | 4512 | if (ar->arWmiReady == false) { |
4513 | ret = -EIO; | 4513 | ret = -EIO; |
4514 | } else if(copy_to_user((A_UINT8 *)rq->ifr_data, | 4514 | } else if(copy_to_user((u8 *)rq->ifr_data, |
4515 | &ar->ap_wmode, sizeof(A_UINT8))) { | 4515 | &ar->ap_wmode, sizeof(u8))) { |
4516 | ret = -EFAULT; | 4516 | ret = -EFAULT; |
4517 | } | 4517 | } |
4518 | break; | 4518 | break; |
@@ -4594,7 +4594,7 @@ int ar6000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
4594 | } | 4594 | } |
4595 | rq->ifr_ifru.ifru_ivalue = ar->arWlanState; /* return value */ | 4595 | rq->ifr_ifru.ifru_ivalue = ar->arWlanState; /* return value */ |
4596 | 4596 | ||
4597 | ar6000_send_event_to_app(ar, WMI_REPORT_SLEEP_STATE_EVENTID, (A_UINT8*)&wmiSleepEvent, | 4597 | ar6000_send_event_to_app(ar, WMI_REPORT_SLEEP_STATE_EVENTID, (u8 *)&wmiSleepEvent, |
4598 | sizeof(WMI_REPORT_SLEEP_STATE_EVENTID)); | 4598 | sizeof(WMI_REPORT_SLEEP_STATE_EVENTID)); |
4599 | break; | 4599 | break; |
4600 | } | 4600 | } |
@@ -4671,9 +4671,9 @@ ioctl_done: | |||
4671 | return ret; | 4671 | return ret; |
4672 | } | 4672 | } |
4673 | 4673 | ||
4674 | A_UINT8 mac_cmp_wild(A_UINT8 *mac, A_UINT8 *new_mac, A_UINT8 wild, A_UINT8 new_wild) | 4674 | u8 mac_cmp_wild(u8 *mac, u8 *new_mac, u8 wild, u8 new_wild) |
4675 | { | 4675 | { |
4676 | A_UINT8 i; | 4676 | u8 i; |
4677 | 4677 | ||
4678 | for(i=0;i<ATH_MAC_LEN;i++) { | 4678 | for(i=0;i<ATH_MAC_LEN;i++) { |
4679 | if((wild & 1<<i) && (new_wild & 1<<i)) continue; | 4679 | if((wild & 1<<i) && (new_wild & 1<<i)) continue; |
@@ -4687,7 +4687,7 @@ A_UINT8 mac_cmp_wild(A_UINT8 *mac, A_UINT8 *new_mac, A_UINT8 wild, A_UINT8 new_w | |||
4687 | return 0; | 4687 | return 0; |
4688 | } | 4688 | } |
4689 | 4689 | ||
4690 | A_UINT8 acl_add_del_mac(WMI_AP_ACL *a, WMI_AP_ACL_MAC_CMD *acl) | 4690 | u8 acl_add_del_mac(WMI_AP_ACL *a, WMI_AP_ACL_MAC_CMD *acl) |
4691 | { | 4691 | { |
4692 | A_INT8 already_avail=-1, free_slot=-1, i; | 4692 | A_INT8 already_avail=-1, free_slot=-1, i; |
4693 | 4693 | ||