mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 20:07:09 +00:00
staging: vt6656: channel/control/firmware/int/usbpipe to new structures
This patch cleans up function declarations, definitions and local variables where appropriate replacing types defined in "ttype.h" with linux/types.h. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
da033bfd7a
commit
fe5d00ebd3
@ -436,11 +436,10 @@ CHvChannelGetList (
|
||||
}
|
||||
|
||||
|
||||
void CHvInitChannelTable(void *pDeviceHandler)
|
||||
void CHvInitChannelTable(struct vnt_private *pDevice)
|
||||
{
|
||||
PSDevice pDevice = (PSDevice) pDeviceHandler;
|
||||
BOOL bMultiBand = FALSE;
|
||||
unsigned int ii;
|
||||
int bMultiBand = FALSE;
|
||||
int ii;
|
||||
|
||||
for (ii = 1; ii <= CB_MAX_CHANNEL; ii++)
|
||||
sChannelTbl[ii].bValid = FALSE;
|
||||
|
@ -30,6 +30,7 @@
|
||||
#ifndef _CHANNEL_H_
|
||||
#define _CHANNEL_H_
|
||||
|
||||
#include "device.h"
|
||||
#include "ttype.h"
|
||||
|
||||
/*--------------------- Export Definitions -------------------------*/
|
||||
@ -47,7 +48,7 @@ typedef struct tagSChannelTblElement {
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
BOOL ChannelValid(unsigned int CountryCode, unsigned int ChannelNum);
|
||||
void CHvInitChannelTable(void *pDeviceHandler);
|
||||
void CHvInitChannelTable(struct vnt_private *pDevice);
|
||||
BYTE CHbyGetChannelMapping(BYTE byChannelNumber);
|
||||
|
||||
BOOL CHvChannelGetList(unsigned int uCountryCodeIdx, PBYTE pbyChannelTable);
|
||||
|
@ -56,43 +56,34 @@
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
void ControlvWriteByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
|
||||
BYTE byData)
|
||||
void ControlvWriteByte(struct vnt_private *pDevice, u8 reg, u8 reg_off,
|
||||
u8 data)
|
||||
{
|
||||
BYTE byData1;
|
||||
byData1 = byData;
|
||||
CONTROLnsRequestOut(pDevice,
|
||||
MESSAGE_TYPE_WRITE,
|
||||
byRegOfs,
|
||||
byRegType,
|
||||
1,
|
||||
&byData1);
|
||||
|
||||
CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_WRITE, reg_off, reg,
|
||||
sizeof(u8), &data);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void ControlvReadByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
|
||||
PBYTE pbyData)
|
||||
void ControlvReadByte(struct vnt_private *pDevice, u8 reg, u8 reg_off,
|
||||
u8 *data)
|
||||
{
|
||||
int ntStatus;
|
||||
BYTE byData1;
|
||||
ntStatus = CONTROLnsRequestIn(pDevice,
|
||||
MESSAGE_TYPE_READ,
|
||||
byRegOfs,
|
||||
byRegType,
|
||||
1,
|
||||
&byData1);
|
||||
*pbyData = byData1;
|
||||
CONTROLnsRequestIn(pDevice, MESSAGE_TYPE_READ,
|
||||
reg_off, reg, sizeof(u8), data);
|
||||
return;
|
||||
}
|
||||
|
||||
void ControlvMaskByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
|
||||
BYTE byMask, BYTE byData)
|
||||
void ControlvMaskByte(struct vnt_private *pDevice, u8 reg_type, u8 reg_off,
|
||||
u8 reg_mask, u8 data)
|
||||
{
|
||||
BYTE pbyData[2];
|
||||
pbyData[0] = byData;
|
||||
pbyData[1] = byMask;
|
||||
CONTROLnsRequestOut(pDevice,
|
||||
MESSAGE_TYPE_WRITE_MASK,
|
||||
byRegOfs,
|
||||
byRegType,
|
||||
2,
|
||||
pbyData);
|
||||
u8 reg_data[2];
|
||||
|
||||
reg_data[0] = data;
|
||||
reg_data[1] = reg_mask;
|
||||
|
||||
CONTROLnsRequestOut(pDevice, MESSAGE_TYPE_WRITE_MASK, reg_off,
|
||||
reg_type, ARRAY_SIZE(reg_data), reg_data);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -51,28 +51,14 @@
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
void ControlvWriteByte(
|
||||
PSDevice pDevice,
|
||||
BYTE byRegType,
|
||||
BYTE byRegOfs,
|
||||
BYTE byData
|
||||
);
|
||||
void ControlvWriteByte(struct vnt_private *pDevice, u8 reg, u8 reg_off,
|
||||
u8 data);
|
||||
|
||||
void ControlvReadByte(struct vnt_private *pDevice, u8 reg, u8 reg_off,
|
||||
u8 *data);
|
||||
|
||||
void ControlvReadByte(
|
||||
PSDevice pDevice,
|
||||
BYTE byRegType,
|
||||
BYTE byRegOfs,
|
||||
PBYTE pbyData
|
||||
);
|
||||
void ControlvMaskByte(struct vnt_private *pDevice, u8 reg_type, u8 reg_off,
|
||||
u8 reg_mask, u8 data);
|
||||
|
||||
|
||||
void ControlvMaskByte(
|
||||
PSDevice pDevice,
|
||||
BYTE byRegType,
|
||||
BYTE byRegOfs,
|
||||
BYTE byMask,
|
||||
BYTE byData
|
||||
);
|
||||
|
||||
#endif /* __CONTROL_H__ */
|
||||
|
@ -56,10 +56,7 @@ static int msglevel =MSG_LEVEL_INFO;
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
|
||||
BOOL
|
||||
FIRMWAREbDownload(
|
||||
PSDevice pDevice
|
||||
)
|
||||
int FIRMWAREbDownload(struct vnt_private *pDevice)
|
||||
{
|
||||
struct device *dev = &pDevice->usb->dev;
|
||||
const struct firmware *fw;
|
||||
@ -114,12 +111,9 @@ out:
|
||||
}
|
||||
MODULE_FIRMWARE(FIRMWARE_NAME);
|
||||
|
||||
BOOL
|
||||
FIRMWAREbBrach2Sram(
|
||||
PSDevice pDevice
|
||||
)
|
||||
int FIRMWAREbBrach2Sram(struct vnt_private *pDevice)
|
||||
{
|
||||
int NdisStatus;
|
||||
int NdisStatus;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->Branch to Sram\n");
|
||||
|
||||
@ -139,10 +133,7 @@ FIRMWAREbBrach2Sram(
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
FIRMWAREbCheckVersion(
|
||||
PSDevice pDevice
|
||||
)
|
||||
int FIRMWAREbCheckVersion(struct vnt_private *pDevice)
|
||||
{
|
||||
int ntStatus;
|
||||
|
||||
|
@ -41,19 +41,8 @@
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
BOOL
|
||||
FIRMWAREbDownload(
|
||||
PSDevice pDevice
|
||||
);
|
||||
|
||||
BOOL
|
||||
FIRMWAREbBrach2Sram(
|
||||
PSDevice pDevice
|
||||
);
|
||||
|
||||
BOOL
|
||||
FIRMWAREbCheckVersion(
|
||||
PSDevice pDevice
|
||||
);
|
||||
int FIRMWAREbDownload(struct vnt_private *);
|
||||
int FIRMWAREbBrach2Sram(struct vnt_private *);
|
||||
int FIRMWAREbCheckVersion(struct vnt_private *);
|
||||
|
||||
#endif /* __FIRMWARE_H__ */
|
||||
|
@ -75,9 +75,8 @@ static int msglevel = MSG_LEVEL_INFO; /* MSG_LEVEL_DEBUG */
|
||||
* if we've gotten no data
|
||||
*
|
||||
-*/
|
||||
void INTvWorkItem(void *Context)
|
||||
void INTvWorkItem(struct vnt_private *pDevice)
|
||||
{
|
||||
PSDevice pDevice = Context;
|
||||
int ntStatus;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->Interrupt Polling Thread\n");
|
||||
@ -88,10 +87,10 @@ void INTvWorkItem(void *Context)
|
||||
spin_unlock_irq(&pDevice->lock);
|
||||
}
|
||||
|
||||
void INTnsProcessData(PSDevice pDevice)
|
||||
void INTnsProcessData(struct vnt_private *pDevice)
|
||||
{
|
||||
PSINTData pINTData;
|
||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||
struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
|
||||
struct net_device_stats *pStats = &pDevice->stats;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsInterruptProcessData\n");
|
||||
|
@ -65,7 +65,7 @@ SINTData, *PSINTData;
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
void INTvWorkItem(void *Context);
|
||||
void INTnsProcessData(PSDevice pDevice);
|
||||
void INTvWorkItem(struct vnt_private *);
|
||||
void INTnsProcessData(struct vnt_private *);
|
||||
|
||||
#endif /* __INT_H__ */
|
||||
|
@ -67,51 +67,18 @@ static int msglevel =MSG_LEVEL_INFO;
|
||||
/*--------------------- Static Variables --------------------------*/
|
||||
|
||||
/*--------------------- Static Functions --------------------------*/
|
||||
static
|
||||
void
|
||||
s_nsInterruptUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
);
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
s_nsBulkInUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
);
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
s_nsBulkOutIoCompleteWrite(
|
||||
struct urb *urb
|
||||
);
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
s_nsControlInUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
);
|
||||
|
||||
static
|
||||
void
|
||||
s_nsControlInUsbIoCompleteWrite(
|
||||
struct urb *urb
|
||||
);
|
||||
static void s_nsInterruptUsbIoCompleteRead(struct urb *urb);
|
||||
static void s_nsBulkInUsbIoCompleteRead(struct urb *urb);
|
||||
static void s_nsBulkOutIoCompleteWrite(struct urb *urb);
|
||||
static void s_nsControlInUsbIoCompleteRead(struct urb *urb);
|
||||
static void s_nsControlInUsbIoCompleteWrite(struct urb *urb);
|
||||
|
||||
/*--------------------- Export Variables --------------------------*/
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
int PIPEnsControlOutAsyn(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
)
|
||||
int PIPEnsControlOutAsyn(struct vnt_private *pDevice, u8 byRequest,
|
||||
u16 wValue, u16 wIndex, u16 wLength, u8 *pbyBuffer)
|
||||
{
|
||||
int ntStatus;
|
||||
|
||||
@ -147,17 +114,11 @@ int PIPEnsControlOutAsyn(
|
||||
return ntStatus;
|
||||
}
|
||||
|
||||
int PIPEnsControlOut(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
)
|
||||
int PIPEnsControlOut(struct vnt_private *pDevice, u8 byRequest, u16 wValue,
|
||||
u16 wIndex, u16 wLength, u8 *pbyBuffer)
|
||||
{
|
||||
int ntStatus = 0;
|
||||
int ii;
|
||||
int ii;
|
||||
|
||||
if (pDevice->Flags & fMP_DISCONNECTED)
|
||||
return STATUS_FAILURE;
|
||||
@ -206,17 +167,11 @@ int PIPEnsControlOut(
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
int PIPEnsControlIn(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
)
|
||||
int PIPEnsControlIn(struct vnt_private *pDevice, u8 byRequest, u16 wValue,
|
||||
u16 wIndex, u16 wLength, u8 *pbyBuffer)
|
||||
{
|
||||
int ntStatus = 0;
|
||||
int ii;
|
||||
int ii;
|
||||
|
||||
if (pDevice->Flags & fMP_DISCONNECTED)
|
||||
return STATUS_FAILURE;
|
||||
@ -263,13 +218,9 @@ int PIPEnsControlIn(
|
||||
return ntStatus;
|
||||
}
|
||||
|
||||
static
|
||||
void
|
||||
s_nsControlInUsbIoCompleteWrite(
|
||||
struct urb *urb
|
||||
)
|
||||
static void s_nsControlInUsbIoCompleteWrite(struct urb *urb)
|
||||
{
|
||||
PSDevice pDevice;
|
||||
struct vnt_private *pDevice = (struct vnt_private *)urb->context;
|
||||
|
||||
pDevice = urb->context;
|
||||
switch (urb->status) {
|
||||
@ -304,15 +255,11 @@ s_nsControlInUsbIoCompleteWrite(
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
static
|
||||
void
|
||||
s_nsControlInUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
)
|
||||
{
|
||||
PSDevice pDevice;
|
||||
|
||||
pDevice = urb->context;
|
||||
static void s_nsControlInUsbIoCompleteRead(struct urb *urb)
|
||||
{
|
||||
struct vnt_private *pDevice = (struct vnt_private *)urb->context;
|
||||
|
||||
switch (urb->status) {
|
||||
case 0:
|
||||
break;
|
||||
@ -345,9 +292,10 @@ s_nsControlInUsbIoCompleteRead(
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
int PIPEnsInterruptRead(PSDevice pDevice)
|
||||
|
||||
int PIPEnsInterruptRead(struct vnt_private *pDevice)
|
||||
{
|
||||
int ntStatus = STATUS_FAILURE;
|
||||
int ntStatus = STATUS_FAILURE;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsStartInterruptUsbRead()\n");
|
||||
|
||||
@ -396,21 +344,16 @@ usb_fill_bulk_urb(pDevice->pInterruptURB,
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
static
|
||||
void
|
||||
s_nsInterruptUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
)
|
||||
|
||||
static void s_nsInterruptUsbIoCompleteRead(struct urb *urb)
|
||||
{
|
||||
PSDevice pDevice;
|
||||
int ntStatus;
|
||||
struct vnt_private *pDevice = (struct vnt_private *)urb->context;
|
||||
int ntStatus;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsInterruptUsbIoCompleteRead\n");
|
||||
//
|
||||
// The context given to IoSetCompletionRoutine is the receive buffer object
|
||||
//
|
||||
pDevice = (PSDevice)urb->context;
|
||||
|
||||
//
|
||||
// We have a number of cases:
|
||||
@ -483,10 +426,11 @@ s_nsInterruptUsbIoCompleteRead(
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
int PIPEnsBulkInUsbRead(PSDevice pDevice, PRCB pRCB)
|
||||
|
||||
int PIPEnsBulkInUsbRead(struct vnt_private *pDevice, PRCB pRCB)
|
||||
{
|
||||
int ntStatus = 0;
|
||||
struct urb *pUrb;
|
||||
struct urb *pUrb;
|
||||
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsStartBulkInUsbRead\n");
|
||||
@ -543,19 +487,15 @@ int PIPEnsBulkInUsbRead(PSDevice pDevice, PRCB pRCB)
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
static
|
||||
void
|
||||
s_nsBulkInUsbIoCompleteRead(
|
||||
struct urb *urb
|
||||
)
|
||||
|
||||
static void s_nsBulkInUsbIoCompleteRead(struct urb *urb)
|
||||
{
|
||||
PRCB pRCB = (PRCB)urb->context;
|
||||
PSDevice pDevice = (PSDevice)pRCB->pDevice;
|
||||
unsigned long bytesRead;
|
||||
BOOL bIndicateReceive = FALSE;
|
||||
BOOL bReAllocSkb = FALSE;
|
||||
int status;
|
||||
PRCB pRCB = (PRCB)urb->context;
|
||||
struct vnt_private *pDevice = pRCB->pDevice;
|
||||
unsigned long bytesRead;
|
||||
int bIndicateReceive = FALSE;
|
||||
int bReAllocSkb = FALSE;
|
||||
int status;
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsBulkInUsbIoCompleteRead\n");
|
||||
status = urb->status;
|
||||
@ -618,14 +558,11 @@ s_nsBulkInUsbIoCompleteRead(
|
||||
* Return Value: STATUS_INSUFFICIENT_RESOURCES or result of IoCallDriver
|
||||
*
|
||||
*/
|
||||
int
|
||||
PIPEnsSendBulkOut(
|
||||
PSDevice pDevice,
|
||||
PUSB_SEND_CONTEXT pContext
|
||||
)
|
||||
|
||||
int PIPEnsSendBulkOut(struct vnt_private *pDevice, PUSB_SEND_CONTEXT pContext)
|
||||
{
|
||||
int status;
|
||||
struct urb *pUrb;
|
||||
int status;
|
||||
struct urb *pUrb;
|
||||
|
||||
|
||||
|
||||
@ -699,17 +636,14 @@ PIPEnsSendBulkOut(
|
||||
* (IofCompleteRequest) to stop working on the irp.
|
||||
*
|
||||
*/
|
||||
static
|
||||
void
|
||||
s_nsBulkOutIoCompleteWrite(
|
||||
struct urb *urb
|
||||
)
|
||||
|
||||
static void s_nsBulkOutIoCompleteWrite(struct urb *urb)
|
||||
{
|
||||
PSDevice pDevice;
|
||||
int status;
|
||||
CONTEXT_TYPE ContextType;
|
||||
unsigned long ulBufLen;
|
||||
PUSB_SEND_CONTEXT pContext;
|
||||
struct vnt_private *pDevice;
|
||||
int status;
|
||||
CONTEXT_TYPE ContextType;
|
||||
unsigned long ulBufLen;
|
||||
PUSB_SEND_CONTEXT pContext;
|
||||
|
||||
|
||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsBulkOutIoCompleteWrite\n");
|
||||
|
@ -41,35 +41,15 @@
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
int PIPEnsControlOut(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
);
|
||||
int PIPEnsControlOut(struct vnt_private *, u8 byRequest, u16 wValue,
|
||||
u16 wIndex, u16 wLength, u8 *pbyBuffer);
|
||||
int PIPEnsControlOutAsyn(struct vnt_private *, u8 byRequest,
|
||||
u16 wValue, u16 wIndex, u16 wLength, u8 *pbyBuffer);
|
||||
int PIPEnsControlIn(struct vnt_private *, u8 byRequest, u16 wValue,
|
||||
u16 wIndex, u16 wLength, u8 *pbyBuffer);
|
||||
|
||||
int PIPEnsControlOutAsyn(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
);
|
||||
|
||||
int PIPEnsControlIn(
|
||||
PSDevice pDevice,
|
||||
BYTE byRequest,
|
||||
WORD wValue,
|
||||
WORD wIndex,
|
||||
WORD wLength,
|
||||
PBYTE pbyBuffer
|
||||
);
|
||||
|
||||
int PIPEnsInterruptRead(PSDevice pDevice);
|
||||
int PIPEnsBulkInUsbRead(PSDevice pDevice, PRCB pRCB);
|
||||
int PIPEnsSendBulkOut(PSDevice pDevice, PUSB_SEND_CONTEXT pContext);
|
||||
int PIPEnsInterruptRead(struct vnt_private *);
|
||||
int PIPEnsBulkInUsbRead(struct vnt_private *, PRCB pRCB);
|
||||
int PIPEnsSendBulkOut(struct vnt_private *, PUSB_SEND_CONTEXT pContext);
|
||||
|
||||
#endif /* __USBPIPE_H__ */
|
||||
|
@ -67,10 +67,10 @@ static int msglevel = MSG_LEVEL_INFO;
|
||||
* Return Value:
|
||||
*
|
||||
*/
|
||||
int wpa_set_keys(PSDevice pDevice, void *ctx)
|
||||
int wpa_set_keys(struct vnt_private *pDevice, void *ctx)
|
||||
{
|
||||
struct viawget_wpa_param *param = ctx;
|
||||
PSMgmtObject pMgmt = &pDevice->sMgmtObj;
|
||||
struct vnt_manager *pMgmt = &pDevice->vnt_mgmt;
|
||||
DWORD dwKeyIndex = 0;
|
||||
BYTE abyKey[MAX_KEY_LEN];
|
||||
BYTE abySeq[MAX_KEY_LEN];
|
||||
|
@ -52,6 +52,6 @@ typedef unsigned long long NDIS_802_11_KEY_RSC;
|
||||
|
||||
/*--------------------- Export Functions --------------------------*/
|
||||
|
||||
int wpa_set_keys(PSDevice pDevice, void *ctx);
|
||||
int wpa_set_keys(struct vnt_private *, void *ctx);
|
||||
|
||||
#endif /* __WPACL_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user