mirror of
https://github.com/azure-rtos/usbx.git
synced 2025-01-14 06:43:05 +08:00
150 lines
8.1 KiB
C
150 lines
8.1 KiB
C
/**************************************************************************/
|
|
/* */
|
|
/* Copyright (c) Microsoft Corporation. All rights reserved. */
|
|
/* */
|
|
/* This software is licensed under the Microsoft Software License */
|
|
/* Terms for Microsoft Azure RTOS. Full text of the license can be */
|
|
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
|
|
/* and in the root directory of this software. */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
/** */
|
|
/** USBX Component */
|
|
/** */
|
|
/** Host Sierra Wireless AR module class */
|
|
/** */
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/* */
|
|
/* COMPONENT DEFINITION RELEASE */
|
|
/* */
|
|
/* ux_host_class_swar.h PORTABLE C */
|
|
/* 6.1 */
|
|
/* AUTHOR */
|
|
/* */
|
|
/* Chaoqiong Xiao, Microsoft Corporation */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* This file contains all the header and extern functions used by the */
|
|
/* USBX Sierra Wireless AR Class. */
|
|
/* */
|
|
/* RELEASE HISTORY */
|
|
/* */
|
|
/* DATE NAME DESCRIPTION */
|
|
/* */
|
|
/* 05-19-2020 Chaoqiong Xiao Initial Version 6.0 */
|
|
/* 09-30-2020 Chaoqiong Xiao Modified comment(s), */
|
|
/* used UX prefix to refer to */
|
|
/* TX symbols instead of using */
|
|
/* them directly, */
|
|
/* resulting in version 6.1 */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
#ifndef UX_HOST_CLASS_SWAR_H
|
|
#define UX_HOST_CLASS_SWAR_H
|
|
|
|
|
|
/* Define Sierra Wireless AR Class constants. */
|
|
|
|
#define UX_HOST_CLASS_SWAR_CLASS_TRANSFER_TIMEOUT 300000
|
|
#ifndef UX_HOST_CLASS_SWAR_VENDOR_ID
|
|
#define UX_HOST_CLASS_SWAR_VENDOR_ID 0X1199
|
|
#define UX_HOST_CLASS_SWAR_PRODUCT_ID 0X68A3
|
|
#endif
|
|
|
|
/* Define Sierra Wireless AR Class packet equivalences. */
|
|
#define UX_HOST_CLASS_SWAR_PACKET_SIZE 128
|
|
|
|
/* Define Sierra Wireless AR Class data interface. */
|
|
#define UX_HOST_CLASS_SWAR_DATA_INTERFACE 3
|
|
|
|
/* Define Sierra Wireless AR IOCTL functions. */
|
|
#define UX_HOST_CLASS_SWAR_IOCTL_ABORT_IN_PIPE 1
|
|
#define UX_HOST_CLASS_SWAR_IOCTL_ABORT_OUT_PIPE 2
|
|
|
|
/* Define CDC ACM Reception States. */
|
|
|
|
#define UX_HOST_CLASS_SWAR_RECEPTION_STATE_STOPPED 0
|
|
#define UX_HOST_CLASS_SWAR_RECEPTION_STATE_STARTED 1
|
|
#define UX_HOST_CLASS_SWAR_RECEPTION_STATE_IN_TRANSFER 2
|
|
|
|
|
|
/* Define Sierra Wireless Airprime Class instance structure. */
|
|
|
|
typedef struct UX_HOST_CLASS_SWAR_STRUCT
|
|
{
|
|
|
|
struct UX_HOST_CLASS_SWAR_STRUCT
|
|
*ux_host_class_swar_next_instance;
|
|
UX_HOST_CLASS *ux_host_class_swar_class;
|
|
UX_DEVICE *ux_host_class_swar_device;
|
|
UX_INTERFACE *ux_host_class_swar_interface;
|
|
UX_ENDPOINT *ux_host_class_swar_bulk_out_endpoint;
|
|
UX_ENDPOINT *ux_host_class_swar_bulk_in_endpoint;
|
|
UINT ux_host_class_swar_state;
|
|
UX_SEMAPHORE ux_host_class_swar_semaphore;
|
|
|
|
struct UX_HOST_CLASS_SWAR_RECEPTION_STRUCT
|
|
*ux_host_class_swar_reception;
|
|
ULONG ux_host_class_swar_notification_count;
|
|
} UX_HOST_CLASS_SWAR;
|
|
|
|
/* Define Sierra Wireless reception structure. */
|
|
|
|
typedef struct UX_HOST_CLASS_SWAR_RECEPTION_STRUCT
|
|
{
|
|
|
|
ULONG ux_host_class_swar_reception_state;
|
|
ULONG ux_host_class_swar_reception_block_size;
|
|
UCHAR *ux_host_class_swar_reception_data_buffer;
|
|
ULONG ux_host_class_swar_reception_data_buffer_size;
|
|
UCHAR *ux_host_class_swar_reception_data_head;
|
|
UCHAR *ux_host_class_swar_reception_data_tail;
|
|
VOID (*ux_host_class_swar_reception_callback)(struct UX_HOST_CLASS_SWAR_STRUCT *swar,
|
|
UINT status,
|
|
UCHAR *reception_buffer,
|
|
ULONG reception_size);
|
|
|
|
} UX_HOST_CLASS_SWAR_RECEPTION;
|
|
|
|
/* Define Sierra Wireless Airprime Classfunction prototypes. */
|
|
|
|
UINT _ux_host_class_swar_activate(UX_HOST_CLASS_COMMAND *command);
|
|
UINT _ux_host_class_swar_configure(UX_HOST_CLASS_SWAR *swar);
|
|
UINT _ux_host_class_swar_deactivate(UX_HOST_CLASS_COMMAND *command);
|
|
UINT _ux_host_class_swar_endpoints_get(UX_HOST_CLASS_SWAR *swar);
|
|
UINT _ux_host_class_swar_entry(UX_HOST_CLASS_COMMAND *command);
|
|
UINT _ux_host_class_swar_read (UX_HOST_CLASS_SWAR *swar, UCHAR *data_pointer,
|
|
ULONG requested_length, ULONG *actual_length);
|
|
UINT _ux_host_class_swar_write(UX_HOST_CLASS_SWAR *swar, UCHAR *data_pointer,
|
|
ULONG requested_length, ULONG *actual_length);
|
|
UINT _ux_host_class_swar_ioctl(UX_HOST_CLASS_SWAR *swar, ULONG ioctl_function,
|
|
VOID *parameter);
|
|
VOID _ux_host_class_swar_reception_callback (UX_TRANSFER *transfer_request);
|
|
UINT _ux_host_class_swar_reception_stop (UX_HOST_CLASS_SWAR *swar,
|
|
UX_HOST_CLASS_SWAR_RECEPTION *swar_reception);
|
|
UINT _ux_host_class_swar_reception_start (UX_HOST_CLASS_SWAR *swar,
|
|
UX_HOST_CLASS_SWAR_RECEPTION *swar_reception);
|
|
|
|
/* Define SWAR Class API prototypes. */
|
|
|
|
#define ux_host_class_swar_entry _ux_host_class_swar_entry
|
|
#define ux_host_class_swar_read _ux_host_class_swar_read
|
|
#define ux_host_class_swar_write _ux_host_class_swar_write
|
|
#define ux_host_class_swar_ioctl _ux_host_class_swar_ioctl
|
|
#define ux_host_class_swar_command _ux_host_class_swar_command
|
|
#define ux_host_class_swar_reception_stop _ux_host_class_swar_reception_stop
|
|
#define ux_host_class_swar_reception_start _ux_host_class_swar_reception_start
|
|
#define ux_host_class_swar_setup _ux_host_class_swar_setup
|
|
|
|
#endif
|