www.pudn.com > CEWifiDriverAR6000-21374.zip > dset.h
//------------------------------------------------------------------------------ //// Copyright (c) 2006 Microsoft Corporation. All rights reserved. // Copyright (c) 2006 Atheros Corporation. All rights reserved. // // The use and distribution terms for this software are covered by the // Microsoft Limited Permissive License (Ms-LPL) // http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpermissivelicense.mspx // which can be found in the file MS-LPL.txt at the root of this distribution. // By using this software in any fashion, you are agreeing to be bound by // the terms of this license. // // The software is licensed “as-is.” // You must not remove this notice, or any other, from this software. // // //// Windows CE Wifi Driver for AR-6000 // //------------------------------------------------------------------------------ //============================================================================== // DSET structures definition // // Author(s): ="Atheros" //============================================================================== #ifndef _DSET_H_ #define _DSET_H_ /* * Structures used to communicate between an application and the kernel for * DataSet ioctls. * * Pass a dset_request_t with cmd=AR6000_XIOCTL_WMI_WAITDSETREQ in order to * wait for the next DataSet Request to arrive. Once a request is received * from the Target, the kernel fills in information about the Request and * returns from the ioctl to the application. When the ioctl returns, * cmd is set to either AR6000_OPEN_REQ or AR6000_DATA_REQ. * * Pass a dset_open_reply_t with cmd=AR6000_IOCTL_WMI_DSET_OPEN_REPLY in order * to send a DataSet Open reply to the Target. The targ_* fields should simply * be copied from the original Open Request. The status field should be set * to 0 for success or non-zero for failure. * * Pass a dset_data_reply_t with cmd=AR6000_IOCTL_WMI_DSET_DATA_REPLY in order * to send a DataSet Data reply to the Target. The targ_* fields should simply * be copied from the original Data Request. The status field should be set * to 0 for success or non-zero for failure. The buf field is a pointer * to a buffer that contains the requested data. */ /* A DataSet Request, either Open Request or Data Request */ typedef struct dset_request_s { unsigned int cmd; union { struct open_req_s { unsigned int id; unsigned int targ_handle; unsigned int targ_reply_fn; unsigned int targ_reply_arg; } open_req; struct data_req_s { unsigned int access_cookie; unsigned int offset; unsigned int length; unsigned int targ_buf; unsigned int targ_reply_fn; unsigned int targ_reply_arg; } data_req; } u; } dset_request_t; /* * Values in cmd on return from an AR6000_IOCTL_EXTENDED ioctl that had * cmd=AR6000_XIOCTL_WMI_WAITDSETREQ. */ #define AR6000_OPEN_REQ 1 #define AR6000_DATA_REQ 2 /* Open Reply from Application to Kernel (to be sent to Target) */ typedef struct dset_open_reply { unsigned int cmd; unsigned int status; unsigned int targ_handle; unsigned int targ_reply_fn; unsigned int targ_reply_arg; unsigned int access_cookie; unsigned int size; unsigned int version; } dset_open_reply_t; /* Data Reply from Application to Kernel (to be sent to Target) */ typedef struct dset_data_reply { unsigned int cmd; unsigned int status; char *buf; unsigned int length; unsigned int targ_buf; unsigned int targ_reply_fn; unsigned int targ_reply_arg; } dset_data_reply_t; #endif /* _DSET_H_ */