summaryrefslogtreecommitdiff
path: root/spb/SkeletonI2C/internal.h
diff options
context:
space:
mode:
authorWei Mao <[email protected]>2017-03-17 19:47:04 -0700
committerWei Mao <[email protected]>2017-03-17 19:47:04 -0700
commit1a3e0d580380e58bf336a242d2affc8a1e2d1ddf (patch)
treebf5d9c5b0b4cba1b81726b9f78c4d5ff5c636fea /spb/SkeletonI2C/internal.h
parentda21c8784c83c5fd614f3030323e229d6a5fb10e (diff)
Fix cases
Diffstat (limited to 'spb/SkeletonI2C/internal.h')
-rw-r--r--spb/SkeletonI2C/internal.h293
1 files changed, 0 insertions, 293 deletions
diff --git a/spb/SkeletonI2C/internal.h b/spb/SkeletonI2C/internal.h
deleted file mode 100644
index 3d102ba4..00000000
--- a/spb/SkeletonI2C/internal.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*++
-
-Copyright (c) Microsoft Corporation. All rights reserved.
-
-Module Name:
-
- internal.h
-
-Abstract:
-
- This module contains the common internal type and function
- definitions for the SPB controller driver.
-
-Environment:
-
- kernel-mode only
-
-Revision History:
-
---*/
-
-#ifndef _INTERNAL_H_
-#define _INTERNAL_H_
-
-#pragma warning(push)
-#pragma warning(disable:4512)
-#pragma warning(disable:4480)
-
-#define SI2C_POOL_TAG ((ULONG) 'C2IS')
-
-/////////////////////////////////////////////////
-//
-// Common includes.
-//
-/////////////////////////////////////////////////
-
-#include <initguid.h>
-#include <ntddk.h>
-#include <wdm.h>
-#include <wdf.h>
-#include <ntstrsafe.h>
-
-#include "SPBCx.h"
-#include "i2ctrace.h"
-
-
-/////////////////////////////////////////////////
-//
-// Hardware definitions.
-//
-/////////////////////////////////////////////////
-
-#include "skeletoni2c.h"
-
-/////////////////////////////////////////////////
-//
-// Resource and descriptor definitions.
-//
-/////////////////////////////////////////////////
-
-#include "reshub.h"
-
-//
-// I2C Serial peripheral bus descriptor
-//
-
-#include "pshpack1.h"
-
-typedef struct _PNP_I2C_SERIAL_BUS_DESCRIPTOR {
- PNP_SERIAL_BUS_DESCRIPTOR SerialBusDescriptor;
- ULONG ConnectionSpeed;
- USHORT SlaveAddress;
- // follwed by optional Vendor Data
- // followed by PNP_IO_DESCRIPTOR_RESOURCE_NAME
-} PNP_I2C_SERIAL_BUS_DESCRIPTOR, *PPNP_I2C_SERIAL_BUS_DESCRIPTOR;
-
-#include "poppack.h"
-
-#define I2C_SERIAL_BUS_TYPE 0x01
-#define I2C_SERIAL_BUS_SPECIFIC_FLAG_10BIT_ADDRESS 0x0001
-
-/////////////////////////////////////////////////
-//
-// Settings.
-//
-/////////////////////////////////////////////////
-
-//
-// Power settings.
-//
-
-#define MONITOR_POWER_ON 1
-#define MONITOR_POWER_OFF 0
-
-#define IDLE_TIMEOUT_MONITOR_ON 2000
-#define IDLE_TIMEOUT_MONITOR_OFF 50
-
-//
-// Target settings.
-//
-
-typedef enum ADDRESS_MODE
-{
- AddressMode7Bit,
- AddressMode10Bit
-}
-ADDRESS_MODE, *PADDRESS_MODE;
-
-typedef struct PBC_TARGET_SETTINGS
-{
- // TODO: Update this structure to include other
- // target settings needed to configure the
- // controller (i.e. connection speed, phase/
- // polarity for SPI).
-
- ADDRESS_MODE AddressMode;
- USHORT Address;
- ULONG ConnectionSpeed;
-}
-PBC_TARGET_SETTINGS, *PPBC_TARGET_SETTINGS;
-
-
-//
-// Transfer settings.
-//
-
-typedef enum BUS_CONDITION
-{
- BusConditionFree,
- BusConditionBusy,
- BusConditionDontCare
-}
-BUS_CONDITION, *PBUS_CONDITION;
-
-typedef struct PBC_TRANSFER_SETTINGS
-{
- // TODO: Update this structure to include other
- // settings needed to configure the controller
- // for a specific transfer.
-
- BUS_CONDITION BusCondition;
- BOOLEAN IsStart;
- BOOLEAN IsEnd;
-}
-PBC_TRANSFER_SETTINGS, *PPBC_TRANSFER_SETTINGS;
-
-/////////////////////////////////////////////////
-//
-// Context definitions.
-//
-/////////////////////////////////////////////////
-
-typedef struct PBC_DEVICE PBC_DEVICE, *PPBC_DEVICE;
-typedef struct PBC_TARGET PBC_TARGET, *PPBC_TARGET;
-typedef struct PBC_REQUEST PBC_REQUEST, *PPBC_REQUEST;
-
-//
-// Device context.
-//
-
-struct PBC_DEVICE
-{
- // TODO: Update this structure with variables that
- // need to be stored in the device context.
-
- // Handle to the WDF device.
- WDFDEVICE FxDevice;
-
- // Structure mapped to the controller's
- // register interface.
- PSKELETONI2C_REGISTERS pRegisters;
- ULONG RegistersCb;
- PHYSICAL_ADDRESS pRegistersPhysicalAddress;
-
- // Target that the controller is currently
- // configured for. In most cases this value is only
- // set when there is a request being handled, however,
- // it will persist between lock and unlock requests.
- // There cannot be more than one current target.
- PPBC_TARGET pCurrentTarget;
-
- // Variables to track enabled interrupts
- // and status between ISR and DPC.
- WDFINTERRUPT InterruptObject;
- ULONG InterruptMask;
- ULONG InterruptStatus;
-
- // Controller driver spinlock.
- WDFSPINLOCK Lock;
-
- // Delay timer used to stall between transfers.
- WDFTIMER DelayTimer;
-
- // The power setting callback handle
- PVOID pMonitorPowerSettingHandle;
-};
-
-//
-// Target context.
-//
-
-struct PBC_TARGET
-{
- // TODO: Update this structure with variables that
- // need to be stored in the target context.
-
- // Handle to the SPB target.
- SPBTARGET SpbTarget;
-
- // Target specific settings.
- PBC_TARGET_SETTINGS Settings;
-
- // Current request associated with the
- // target. This value should only be non-null
- // when this target is the controller's current
- // target.
- PPBC_REQUEST pCurrentRequest;
-};
-
-//
-// Request context.
-//
-
-struct PBC_REQUEST
-{
- // TODO: Update this structure with variables that
- // need to be stored in the request context.
-
- //
- // Variables that persist for the lifetime of
- // the request. Specifically these apply to an
- // entire sequence request (not just a single transfer).
- //
-
- // Handle to the SPB request.
- SPBREQUEST SpbRequest;
-
- // SPB request type.
- SPB_REQUEST_TYPE Type;
-
- // Number of transfers in sequence and
- // index of the current one.
- ULONG TransferCount;
- ULONG TransferIndex;
-
- // Total bytes transferred.
- size_t TotalInformation;
-
- // Current status of the request.
- NTSTATUS Status;
- BOOLEAN bIoComplete;
-
-
- //
- // Variables that are reused for each transfer within
- // a [sequence] request.
- //
-
- // Pointer to the transfer buffer and length.
- size_t Length;
- PMDL pMdlChain;
-
- // Position of the current transfer within
- // the sequence and its associated controller
- // settings.
- SPB_REQUEST_SEQUENCE_POSITION SequencePosition;
- PBC_TRANSFER_SETTINGS Settings;
-
- // Direction of the current transfer.
- SPB_TRANSFER_DIRECTION Direction;
-
- // Time to delay before starting transfer.
- ULONG DelayInUs;
-
- // Interrupt flag indicating data is ready to
- // be transferred.
- ULONG DataReadyFlag;
-
- // Bytes read/written in the current transfer.
- size_t Information;
-};
-
-//
-// Declate contexts for device, target, and request.
-//
-
-WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(PBC_DEVICE, GetDeviceContext);
-WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(PBC_TARGET, GetTargetContext);
-WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(PBC_REQUEST, GetRequestContext);
-
-#pragma warning(pop)
-
-#endif // _INTERNAL_H_