#ifndef _CS_H
#define _CS_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _VERSION
#define _VERSION(major, minor) ((major)<<16|(minor))
#endif
#define CS_VERSION _VERSION(5, 2)
#define CS_INTERNAL_REVISION_LEVEL _VERSION(2, 0)
#define CS_GET_CARDSERVICES_INFO_VENDOR_STRING "Solaris UNIX Card Services\n" \
"Copyright 2008 Sun Microsystems, Inc. All rights reserved.\n" \
"Use is subject to license terms.\n" \
"@(#)cs.h 1.69 08/10/17 SMI\n" \
"Based on the PC Card Standard, February 1995\n"
typedef int32_t (csfunction_t)(int32_t, ...);
#define CS_SUN_VENDOR_DESCRIPTION "Sun Microsystems, Inc. (c) 1996"
#define CS_SUCCESS 0x00
#define CS_BAD_ADAPTER 0x01
#define CS_BAD_ATTRIBUTE 0x02
#define CS_BAD_BASE 0x03
#define CS_BAD_EDC 0x04
#define CS_BAD_IRQ 0x06
#define CS_BAD_OFFSET 0x07
#define CS_BAD_PAGE 0x08
#define CS_READ_FAILURE 0x09
#define CS_BAD_SIZE 0x0a
#define CS_BAD_SOCKET 0x0b
#define CS_BAD_TYPE 0x0d
#define CS_BAD_VCC 0x0e
#define CS_BAD_VPP 0x0f
#define CS_BAD_WINDOW 0x11
#define CS_WRITE_FAILURE 0x12
#define CS_NO_CARD 0x14
#define CS_UNSUPPORTED_FUNCTION 0x15
#define CS_UNSUPPORTED_MODE 0x16
#define CS_BAD_SPEED 0x17
#define CS_BUSY 0x18
#define CS_GENERAL_FAILURE 0x19
#define CS_WRITE_PROTECTED 0x1a
#define CS_BAD_ARG_LENGTH 0x1b
#define CS_BAD_ARGS 0x1c
#define CS_CONFIGURATION_LOCKED 0x1d
#define CS_IN_USE 0x1e
#define CS_NO_MORE_ITEMS 0x1f
#define CS_OUT_OF_RESOURCE 0x20
#define CS_BAD_HANDLE 0x21
#define CS_NO_CIS 0x80
#define CS_BAD_CIS 0x81
#define CS_UNKNOWN_TUPLE 0x82
#define CS_BAD_VERSION 0x83
#define CS_UNSUPPORTED_EVENT 0x84
#define CS_CSI_ERROR 0x85
#define CS_CSI_NOT_INIT 0x86
#define CS_NO_TUPLE_PARSER 0x87
#define CS_CARD_NOT_READY 0x88
#define CS_ERRORLIST_END 0x8000
#define CS_EVENT_REGISTRATION_COMPLETE 0x00000001
#define CS_EVENT_PM_RESUME 0x00000002
#define CS_EVENT_CARD_INSERTION 0x00000004
#define CS_EVENT_CARD_READY 0x00000008
#define CS_EVENT_BATTERY_LOW 0x00000010
#define CS_EVENT_BATTERY_DEAD 0x00000020
#define CS_EVENT_CARD_LOCK 0x00000040
#define CS_EVENT_PM_SUSPEND 0x00000080
#define CS_EVENT_CARD_RESET 0x00000100
#define CS_EVENT_CARD_UNLOCK 0x00000200
#define CS_EVENT_EJECTION_COMPLETE 0x00000400
#define CS_EVENT_EJECTION_REQUEST 0x00000800
#define CS_EVENT_ERASE_COMPLETE 0x00001000
#define CS_EVENT_EXCLUSIVE_COMPLETE 0x00002000
#define CS_EVENT_EXCLUSIVE_REQUEST 0x00004000
#define CS_EVENT_INSERTION_COMPLETE 0x00008000
#define CS_EVENT_INSERTION_REQUEST 0x00010000
#define CS_EVENT_RESET_COMPLETE 0x00020000
#define CS_EVENT_RESET_PHYSICAL 0x00040000
#define CS_EVENT_RESET_REQUEST 0x00080000
#define CS_EVENT_MTD_REQUEST 0x00100000
#define CS_EVENT_CLIENT_INFO 0x00200000
#define CS_EVENT_TIMER_EXPIRED 0x00400000
#define CS_EVENT_WRITE_PROTECT 0x01000000
#define CS_EVENT_SS_UPDATED 0x00800000
#define CS_EVENT_STATUS_CHANGE 0x02000000
#define CS_EVENT_CARD_REMOVAL 0x10000000
#define CS_EVENT_CARD_REMOVAL_LOWP 0x20000000
#define CS_EVENT_ALL_CLIENTS 0x40000000
#define CS_EVENT_READY_TIMEOUT 0x80000000
#define CS_EVENT_CLIENT_EVENTS_MASK ~(CS_EVENT_SS_UPDATED | \
CS_EVENT_ALL_CLIENTS | \
CS_EVENT_CARD_REMOVAL_LOWP)
#define CS_CLIENT_INFO_MAX_NAME_LEN 80
typedef struct client_info_t {
uint32_t Attributes;
uint32_t Revision;
uint32_t CSLevel;
uint32_t RevDate;
char ClientName[CS_CLIENT_INFO_MAX_NAME_LEN];
char VendorName[CS_CLIENT_INFO_MAX_NAME_LEN];
char DriverName[MODMAXNAMELEN];
} client_info_t;
#define CS_CLIENT_INFO_SOCKET_SERVICES INFO_SOCKET_SERVICES
#define CS_CLIENT_INFO_IO_CLIENT INFO_IO_CLIENT
#define CS_CLIENT_INFO_MTD_CLIENT INFO_MTD_CLIENT
#define CS_CLIENT_INFO_MEM_CLIENT INFO_MEM_CLIENT
#define CS_CLIENT_INFO_CSI_CLIENT INFO_CSI_CLIENT
#define CS_CLIENT_INFO_CARD_SHARE INFO_CARD_SHARE
#define CS_CLIENT_INFO_CARD_EXCL INFO_CARD_EXCL
#define CS_CLIENT_INFO_CLIENT_MASK 0x000000ff
#define CS_CLIENT_INFO_VALID 0x00010000
#define CS_CLIENT_INFO_CLIENT_ACTIVE 0x00020000
#define CS_CLIENT_INFO_FLAGS_MASK 0xffff0000
#define CS_CLIENT_INFO_SUBSVC_CS 0x00000000
#define CS_CLIENT_INFO_SUBSVC_MASK 0x0000ff00
#define GET_CLIENT_INFO_SUBSVC(s) (((s) & CS_CLIENT_INFO_SUBSVC_MASK)>>8)
#define SET_CLIENT_INFO_SUBSVC(s) (((s)<<8) & CS_CLIENT_INFO_SUBSVC_MASK)
#define CS_CLIENT_INFO_MAKE_DATE(d, m, y) (((d) & 0x01f) | \
(((m) & 0x0f) << 5) | \
(((y) & 0x7f) << 9))
#define CS_CLIENT_INFO_GET_DAY(d) ((d) & 0x1f)
#define CS_CLIENT_INFO_GET_MONTH(m) (((m) >> 5) & 0x0f)
#define CS_CLIENT_INFO_GET_YEAR(y) ((((y) >> 9) & 0x7f) + 1980)
#define CS_CLIENT_INFO_GET_YEAR_OFFSET(y) (((y) >> 9) & 0x7f)
typedef struct get_firstnext_client_t {
uint32_t Socket;
uint32_t Attributes;
client_handle_t client_handle;
uint32_t num_clients;
} get_firstnext_client_t;
#define CS_GET_FIRSTNEXT_CLIENT_ALL_CLIENTS 0x00000001
#define CS_GET_FIRSTNEXT_CLIENT_SOCKET_ONLY 0x00000002
typedef struct event_callback_args_t {
client_handle_t client_handle;
void *info;
void *mtdrequest;
void *buffer;
void *misc;
void *client_data;
client_info_t client_info;
} event_callback_args_t;
#define CS_EVENT_PRI_LOW 0x0001
#define CS_EVENT_PRI_HIGH 0x0002
#define CS_EVENT_PRI_NONE 0x0004
#define CS_EVENT_WRITE_PROTECT_WPOFF 0x0000
#define CS_EVENT_WRITE_PROTECT_WPON 0xffff
#define WIN_ACC_ENDIAN_MASK 0x00300000
#define WIN_ACC_NEVER_SWAP 0x00000000
#define WIN_ACC_BIG_ENDIAN 0x00100000
#define WIN_ACC_LITTLE_ENDIAN 0x00200000
#define WIN_ACC_ORDER_MASK 0x00700000
#define WIN_ACC_STRICT_ORDER 0x00000000
#define WIN_ACC_UNORDERED_OK 0x00100000
#define WIN_ACC_MERGING_OK 0x00200000
#define WIN_ACC_LOADCACHING_OK 0x00300000
#define WIN_ACC_STORECACHING_OK 0x00400000
typedef struct io_req_t {
uint32_t Socket;
baseaddru_t BasePort1;
uint32_t NumPorts1;
uint32_t Attributes1;
baseaddru_t BasePort2;
uint32_t NumPorts2;
uint32_t Attributes2;
uint32_t IOAddrLines;
} io_req_t;
#define IO_DATA_WIDTH_MASK 0x00000001
#define IO_DATA_WIDTH_8 0x00000000
#define IO_DATA_WIDTH_16 0x00000001
#define IO_SHARED 0x00010000
#define IO_FIRST_SHARED 0x00020000
#define IO_FORCE_ALIAS_ACCESS 0x00040000
#define IO_DEALLOCATE_WINDOW 0x10000000
#define IO_DISABLE_WINDOW 0x20000000
typedef struct win_req_t {
uint32_t Socket;
uint32_t Attributes;
union {
uint32_t base;
acc_handle_t handle;
} Base;
uint32_t Size;
union {
uint32_t AccessSpeed;
uint32_t IOAddrLines;
} win_params;
uint32_t ReqOffset;
} win_req_t;
typedef struct modify_win_t {
uint32_t Attributes;
uint32_t AccessSpeed;
} modify_win_t;
#define WIN_MEMORY_TYPE_MASK 0x00000021
#define WIN_MEMORY_TYPE_CM 0x00000000
#define WIN_MEMORY_TYPE_AM 0x00000001
#define WIN_MEMORY_TYPE_IO 0x00000020
#define WIN_DATA_WIDTH_MASK 0x00000042
#define WIN_DATA_WIDTH_8 0x00000000
#define WIN_DATA_WIDTH_16 0x00000002
#define WIN_DATA_WIDTH_32 0x00000040
#define WIN_ENABLE 0x00000004
#define WIN_OFFSET_SIZE 0x00000008
#define WIN_ACCESS_SPEED_VALID 0x00000010
#define WIN_PREFETCH_CACHE_MASK 0x00000300
#define WIN_PREFETCH 0x00000100
#define WIN_PREFETCH_CACHE 0x00000200
#define WIN_BAR_MASK 0x00007000
#define WIN_BAR_1 0x00001000
#define WIN_BAR_2 0x00002000
#define WIN_BAR_3 0x00003000
#define WIN_BAR_4 0x00004000
#define WIN_BAR_5 0x00005000
#define WIN_BAR_6 0x00006000
#define WIN_BAR_7 0x00007000
#define WIN_DATA_WIDTH_VALID 0x00008000
#define WIN_PAGED 0x00010000
#define WIN_SHARED 0x00020000
#define WIN_FIRST_SHARED 0x00040000
#define WIN_BINDING_SPECIFIC 0x00080000
#define WIN_USE_WAIT 0x80
typedef struct client_reg_t {
uint32_t Attributes;
uint32_t EventMask;
event_callback_args_t event_callback_args;
uint32_t Version;
csfunction_t *event_handler;
ddi_iblock_cookie_t *iblk_cookie;
ddi_idevice_cookie_t *idev_cookie;
dev_info_t *dip;
char driver_name[MODMAXNAMELEN];
void *priv;
} client_reg_t;
#define INFO_SOCKET_SERVICES 0x00000001
#define INFO_IO_CLIENT 0x00000002
#define INFO_MTD_CLIENT 0x00000004
#define INFO_MEM_CLIENT 0x00000008
#define INFO_CSI_CLIENT 0x00000010
#define INFO_CLIENT_TYPE_MASK (INFO_SOCKET_SERVICES | \
INFO_IO_CLIENT | \
INFO_MTD_CLIENT | \
INFO_MEM_CLIENT | \
INFO_CSI_CLIENT)
#define MAX_CLIENT_TYPES 3
#define INFO_CARD_SHARE 0x00000020
#define INFO_CARD_EXCL 0x00000040
#define INFO_CARD_FLAGS_MASK (INFO_CARD_SHARE | INFO_CARD_EXCL)
typedef struct tuple_t {
uint32_t Socket;
uint32_t Attributes;
cisdata_t DesiredTuple;
cisdata_t TupleOffset;
uint32_t Flags;
cistpl_t *LinkOffset;
cistpl_t *CISOffset;
cisdata_t TupleDataMax;
cisdata_t TupleDataLen;
cisdata_t TupleData[CIS_MAX_TUPLE_DATA_LEN];
cisdata_t TupleCode;
cisdata_t TupleLink;
} tuple_t;
#define TUPLE_RETURN_LINK 0x00000002
#define TUPLE_RETURN_IGNORED_TUPLES 0x00010000
#define TUPLE_RETURN_NAME 0x00020000
typedef struct cisinfo_t {
uint32_t Socket;
uint32_t Chains;
uint32_t Tuples;
} cisinfo_t;
typedef struct map_mem_page_t {
uint32_t CardOffset;
uint32_t Page;
} map_mem_page_t;
typedef struct sockevent_t {
uint32_t Attributes;
uint32_t EventMask;
uint32_t Socket;
} sockevent_t;
typedef struct request_socket_mask_t {
uint32_t Socket;
uint32_t EventMask;
} request_socket_mask_t;
typedef struct release_socket_mask_t {
uint32_t Socket;
} release_socket_mask_t;
#define CONF_EVENT_MASK_GLOBAL 0x00000000
#define CONF_EVENT_MASK_CLIENT 0x00000001
#define CONF_EVENT_MASK_VALID 0x00000001
typedef struct convert_speed_t {
uint32_t Attributes;
uint32_t nS;
uint32_t devspeed;
} convert_speed_t;
#define CONVERT_NS_TO_DEVSPEED 0x00000001
#define CONVERT_DEVSPEED_TO_NS 0x00000002
typedef struct convert_size_t {
uint32_t Attributes;
uint32_t bytes;
uint32_t devsize;
} convert_size_t;
#define CONVERT_BYTES_TO_DEVSIZE 0x00000001
#define CONVERT_DEVSIZE_TO_BYTES 0x00000002
#define MAX_CS_EVENT_BUFSIZE 64
#define MAX_MULTI_EVENT_BUFSIZE 512
#define CS_EVENT_MAX_BUFSIZE MAX_MULTI_EVENT_BUFSIZE
#define CS_ERROR_MAX_BUFSIZE MAX_CS_EVENT_BUFSIZE
typedef struct event2text_t {
event_t event;
char text[CS_EVENT_MAX_BUFSIZE];
} event2text_t;
typedef struct error2text_t {
uint32_t item;
char text[CS_ERROR_MAX_BUFSIZE];
} error2text_t;
typedef struct get_status_t {
uint32_t Socket;
uint32_t CardState;
uint32_t SocketState;
uint32_t raw_CardState;
} get_status_t;
#define CS_STATUS_WRITE_PROTECTED CS_EVENT_WRITE_PROTECT
#define CS_STATUS_CARD_LOCKED CS_EVENT_CARD_LOCK
#define CS_STATUS_EJECTION_REQUEST CS_EVENT_EJECTION_REQUEST
#define CS_STATUS_INSERTION_REQUEST CS_EVENT_INSERTION_REQUEST
#define CS_STATUS_BATTERY_DEAD CS_EVENT_BATTERY_DEAD
#define CS_STATUS_BATTERY_LOW CS_EVENT_BATTERY_LOW
#define CS_STATUS_CARD_READY CS_EVENT_CARD_READY
#define CS_STATUS_CARD_INSERTED CS_EVENT_CARD_INSERTION
#define CS_STATUS_RES_EVT1 0x00100000
#define CS_STATUS_RES_EVT2 0x00200000
#define CS_STATUS_RES_EVT3 0x00400000
#define CS_STATUS_VCC_50 0x10000000
#define CS_STATUS_VCC_33 0x20000000
#define CS_STATUS_VCC_XX 0x40000000
#define CS_STATUS_REQ_ATTN 0x80000000
#define CS_SOCK_STATUS_WRITE_PROTECT_CHANGE CS_EVENT_WRITE_PROTECT
#define CS_SOCK_STATUS_CARD_LOCK_CHNAGE CS_EVENT_CARD_LOCK
#define CS_SOCK_STATUS_EJECTION_PENDING CS_EVENT_EJECTION_REQUEST
#define CS_SOCK_STATUS_INSERTION_PENDING CS_EVENT_INSERTION_REQUEST
#define CS_SOCK_STATUS_BATTERY_DEAD_CHNAGE CS_EVENT_BATTERY_DEAD
#define CS_SOCK_STATUS_BATTERY_LOW_CHNAGE CS_EVENT_BATTERY_LOW
#define CS_SOCK_STATUS_CARD_READY_CHANGE CS_EVENT_CARD_READY
#define CS_SOCK_STATUS_CARD_DETECT_CHNAGE CS_EVENT_CARD_INSERTION
typedef struct map_log_socket_t {
uint32_t LogSocket;
uint32_t PhyAdapter;
uint32_t PhySocket;
} map_log_socket_t;
typedef struct get_physical_adapter_info_t {
uint32_t LogSocket;
uint32_t PhySocket;
uint32_t flags;
char name[MODMAXNAMELEN];
uint32_t major;
uint32_t minor;
uint32_t instance;
uint32_t number;
uint32_t num_sockets;
uint32_t first_socket;
} get_physical_adapter_info_t;
typedef struct irq_req_t {
uint32_t Socket;
uint32_t Attributes;
csfunction_t *irq_handler;
void *irq_handler_arg;
ddi_iblock_cookie_t *iblk_cookie;
ddi_idevice_cookie_t *idev_cookie;
} irq_req_t;
#define IRQ_TYPE_EXCLUSIVE 0x00000002
#define IRQ_FORCED_PULSE 0x00010000
#define IRQ_TYPE_TIME 0x00020000
#define IRQ_TYPE_DYNAMIC_SHARING 0x00040000
#define IRQ_FIRST_SHARED 0x00080000
#define IRQ_PULSE_ALLOCATED 0x00100000
typedef struct release_config_t {
uint32_t Socket;
} release_config_t;
typedef struct config_req_t {
uint32_t Socket;
uint32_t Attributes;
uint32_t Vcc;
uint32_t Vpp1;
uint32_t Vpp2;
uint32_t IntType;
uint32_t ConfigBase;
uint32_t Status;
uint32_t Pin;
uint32_t Copy;
uint32_t ConfigIndex;
uint32_t Present;
uint32_t ExtendedStatus;
} config_req_t;
#define CONF_ENABLE_IRQ_STEERING 0x00010000
#define SOCKET_INTERFACE_MEMORY 0x00000001
#define SOCKET_INTERFACE_MEMORY_AND_IO 0x00000002
#define CONFIG_OPTION_REG_PRESENT 0x00000001
#define CONFIG_STATUS_REG_PRESENT 0x00000002
#define CONFIG_PINREPL_REG_PRESENT 0x00000004
#define CONFIG_COPY_REG_PRESENT 0x00000008
#define CONFIG_EXSTAT_REG_PRESENT 0x00000010
#define CONFIG_IOBASE0_REG_PRESENT 0x00000020
#define CONFIG_IOBASE1_REG_PRESENT 0x00000040
#define CONFIG_IOBASE2_REG_PRESENT 0x00000080
#define CONFIG_IOBASE3_REG_PRESENT 0x00000100
#define CONFIG_IOLIMIT_REG_PRESENT 0x00000200
#define CONFIG_IOBASE_REG_MASK 0x000001e0
#define CONFIG_IOBASE_REG_SHIFT 5
#define PRR_WP_STATUS 0x01
#define PRR_READY_STATUS 0x02
#define PRR_BVD2_STATUS 0x04
#define PRR_BVD1_STATUS 0x08
#define PRR_WP_EVENT 0x10
#define PRR_READY_EVENT 0x20
#define PRR_BVD2_EVENT 0x40
#define PRR_BVD1_EVENT 0x80
#define COR_ENABLE_FUNCTION 0x01
#define COR_ENABLE_BASE_LIMIT 0x02
#define COR_ENABLE_IREQ_ROUTING 0x04
#define COR_STATUS_CHANGE_MODE 0x08
#define COR_LEVEL_IRQ 0x40
#define COR_SOFT_RESET 0x80
#define CCSR_INTR_ACK 0x01
#define CCSR_INTR 0x02
#define CCSR_POWER_DOWN 0x04
#define CCSR_AUDIO 0x08
#define CCSR_IO_IS_8 0x20
#define CCSR_SIG_CHG 0x40
#define CCSR_CHANGED 0x80
#define SCR_GET_SOCKET(r) ((r)&0x0f)
#define SCR_GET_COPY(r) (((r)>>4)&7)
#define SCR_SET_SOCKET(s) ((s)&0x0f)
#define SCR_SET_COPY(c) (((c)&7)<<4)
#define SCR_SET_SOCKET_COPY(s, c) (((s)&0x0f) | (((c)&7)<<4))
typedef struct modify_config_t {
uint32_t Socket;
uint32_t Attributes;
uint32_t Vpp1;
uint32_t Vpp2;
} modify_config_t;
#define CONF_VPP1_CHANGE_VALID 0x00000002
#define CONF_VPP2_CHANGE_VALID 0x00000004
#define CONF_IRQ_CHANGE_VALID 0x00000008
typedef struct access_config_reg_t {
uint32_t Socket;
uint32_t Action;
uint32_t Offset;
uint32_t Value;
} access_config_reg_t;
#define CONFIG_REG_READ 0x00000001
#define CONFIG_REG_WRITE 0x00000002
#define CONFIG_OPTION_REG_OFFSET 0x00
#define CONFIG_STATUS_REG_OFFSET 0x02
#define CONFIG_PINREPL_REG_OFFSET 0x04
#define CONFIG_COPY_REG_OFFSET 0x06
#define CONFIG_EXSTAT_REG_OFFSET 0x08
#define CONFIG_IOBASE0_REG_OFFSET 0x0a
#define CONFIG_IOBASE1_REG_OFFSET 0x0c
#define CONFIG_IOBASE2_REG_OFFSET 0x0e
#define CONFIG_IOBASE3_REG_OFFSET 0x10
#define CONFIG_IOLIMIT_REG_OFFSET 0x12
typedef struct reset_function_t {
uint32_t Socket;
uint32_t Attributes;
} reset_function_t;
#define CS_GET_CARDSERVICES_INFO_MAX_VS_LEN 512
typedef struct get_cardservices_info_t {
char Signature[2];
uint32_t NumSockets;
uint32_t Revision;
uint32_t CSLevel;
uint32_t FuncsPerSocket;
char VendorString[CS_GET_CARDSERVICES_INFO_MAX_VS_LEN];
} get_cardservices_info_t;
typedef struct get_configuration_info_t {
uint32_t Socket;
uint32_t Attributes;
uint32_t Vcc;
uint32_t Vpp1;
uint32_t Vpp2;
uint32_t IntType;
uint32_t ConfigBase;
uint32_t Status;
uint32_t Pin;
uint32_t Copy;
uint32_t Option;
uint32_t Present;
uint32_t FirstDevType;
uint32_t FuncCode;
uint32_t SysInitMask;
uint32_t ManufCode;
uint32_t ManufInfo;
uint32_t CardValues;
uint32_t AssignedIRQ;
uint32_t IRQ_Attributes;
uint32_t BasePort1;
uint32_t NumPorts1;
uint32_t Attributes1;
uint32_t BasePort2;
uint32_t NumPorts2;
uint32_t Attributes2;
uint32_t IOAddrLines;
uint32_t ExStat;
uint32_t DMA_Attributes;
uint32_t DMA_Assign_Chan;
uint32_t NumIOWindows;
uint32_t NumMemWindows;
} get_configuration_info_t;
typedef struct devnode_desc_t {
char *name;
int32_t spec_type;
int32_t minor_num;
char *node_type;
} devnode_desc_t;
typedef struct make_device_node_t {
uint32_t Action;
uint32_t NumDevNodes;
devnode_desc_t *devnode_desc;
} make_device_node_t;
#define CREATE_DEVICE_NODE 0x01
typedef struct remove_device_node_t {
uint32_t Action;
uint32_t NumDevNodes;
devnode_desc_t *devnode_desc;
} remove_device_node_t;
#define REMOVE_DEVICE_NODE 0x02
#define REMOVE_ALL_DEVICE_NODES 0x03
typedef struct cs_ddi_info_t {
uint32_t Socket;
char *driver_name;
dev_info_t *dip;
int32_t instance;
} cs_ddi_info_t;
typedef struct cs_sys_ctl_t {
uint32_t Socket;
uint32_t Action;
uint32_t Flags;
uint32_t Events;
client_handle_t client_handle;
} cs_sys_ctl_t;
#define CS_SYS_CTL_SEND_EVENT 0x0001
#define CS_SYS_CTL_WAIT_SYNC 0x00000001
#define CS_SYS_CTL_EVENT_SOCKET 0x00000002
#define CS_SYS_CTL_EVENT_CLIENT 0x00000004
#define CS_DEV_AUTOINCR DDI_DEV_AUTOINCR
#define CS_DEV_NO_AUTOINCR DDI_DEV_NO_AUTOINCR
int32_t csx_RegisterClient(client_handle_t *, client_reg_t *);
int32_t csx_DeregisterClient(client_handle_t);
int32_t csx_GetStatus(client_handle_t, get_status_t *);
int32_t csx_SetEventMask(client_handle_t, sockevent_t *);
int32_t csx_GetEventMask(client_handle_t, sockevent_t *);
int32_t csx_RequestIO(client_handle_t, io_req_t *);
int32_t csx_ReleaseIO(client_handle_t, io_req_t *);
int32_t csx_RequestIRQ(client_handle_t, irq_req_t *);
int32_t csx_ReleaseIRQ(client_handle_t, irq_req_t *);
int32_t csx_RequestWindow(client_handle_t, window_handle_t *, win_req_t *);
int32_t csx_ReleaseWindow(window_handle_t);
int32_t csx_ModifyWindow(window_handle_t, modify_win_t *);
int32_t csx_MapMemPage(window_handle_t, map_mem_page_t *);
int32_t csx_RequestSocketMask(client_handle_t, request_socket_mask_t *);
int32_t csx_ReleaseSocketMask(client_handle_t, release_socket_mask_t *);
int32_t csx_RequestConfiguration(client_handle_t, config_req_t *);
int32_t csx_ModifyConfiguration(client_handle_t, modify_config_t *);
int32_t csx_ReleaseConfiguration(client_handle_t, release_config_t *);
int32_t csx_AccessConfigurationRegister(client_handle_t, access_config_reg_t *);
int32_t csx_GetFirstTuple(client_handle_t, tuple_t *);
int32_t csx_GetNextTuple(client_handle_t, tuple_t *);
int32_t csx_GetTupleData(client_handle_t, tuple_t *);
int32_t csx_MapLogSocket(client_handle_t, map_log_socket_t *);
int32_t csx_ValidateCIS(client_handle_t, cisinfo_t *);
int32_t csx_MakeDeviceNode(client_handle_t, make_device_node_t *);
int32_t csx_RemoveDeviceNode(client_handle_t, remove_device_node_t *);
int32_t csx_ConvertSpeed(convert_speed_t *);
int32_t csx_ConvertSize(convert_size_t *);
int32_t csx_Event2Text(event2text_t *);
int32_t csx_Error2Text(error2text_t *);
int32_t csx_CS_DDI_Info(cs_ddi_info_t *);
int32_t csx_CS_Sys_Ctl(cs_sys_ctl_t *);
int32_t csx_ResetFunction(client_handle_t, reset_function_t *);
int32_t csx_GetFirstClient(get_firstnext_client_t *);
int32_t csx_GetNextClient(get_firstnext_client_t *);
int32_t csx_GetClientInfo(client_handle_t, client_info_t *);
int32_t csx_GetCardServicesInfo(client_handle_t, get_cardservices_info_t *);
int32_t csx_GetConfigurationInfo(client_handle_t *, get_configuration_info_t *);
int32_t csx_GetPhysicalAdapterInfo(client_handle_t,
get_physical_adapter_info_t *);
int32_t csx_Parse_CISTPL_CONFIG(client_handle_t, tuple_t *, cistpl_config_t *);
int32_t csx_Parse_CISTPL_DEVICE(client_handle_t, tuple_t *, cistpl_device_t *);
int32_t csx_Parse_CISTPL_DEVICE_A(client_handle_t, tuple_t *,
cistpl_device_t *);
int32_t csx_Parse_CISTPL_DEVICE_OA(client_handle_t, tuple_t *,
cistpl_device_t *);
int32_t csx_Parse_CISTPL_DEVICE_OC(client_handle_t, tuple_t *,
cistpl_device_t *);
int32_t csx_Parse_CISTPL_VERS_1(client_handle_t, tuple_t *, cistpl_vers_1_t *);
int32_t csx_Parse_CISTPL_VERS_2(client_handle_t, tuple_t *, cistpl_vers_2_t *);
int32_t csx_Parse_CISTPL_JEDEC_A(client_handle_t, tuple_t *, cistpl_jedec_t *);
int32_t csx_Parse_CISTPL_JEDEC_C(client_handle_t, tuple_t *, cistpl_jedec_t *);
int32_t csx_Parse_CISTPL_FORMAT(client_handle_t, tuple_t *, cistpl_format_t *);
int32_t csx_Parse_CISTPL_FORMAT_A(client_handle_t, tuple_t *,
cistpl_format_t *);
int32_t csx_Parse_CISTPL_GEOMETRY(client_handle_t, tuple_t *,
cistpl_geometry_t *);
int32_t csx_Parse_CISTPL_BYTEORDER(client_handle_t, tuple_t *,
cistpl_byteorder_t *);
int32_t csx_Parse_CISTPL_DATE(client_handle_t, tuple_t *, cistpl_date_t *);
int32_t csx_Parse_CISTPL_BATTERY(client_handle_t, tuple_t *,
cistpl_battery_t *);
int32_t csx_Parse_CISTPL_ORG(client_handle_t, tuple_t *, cistpl_org_t *);
int32_t csx_Parse_CISTPL_MANFID(client_handle_t, tuple_t *, cistpl_manfid_t *);
int32_t csx_Parse_CISTPL_FUNCID(client_handle_t, tuple_t *, cistpl_funcid_t *);
int32_t csx_Parse_CISTPL_FUNCE(client_handle_t, tuple_t *, cistpl_funce_t *,
uint32_t);
int32_t csx_Parse_CISTPL_CFTABLE_ENTRY(client_handle_t, tuple_t *,
cistpl_cftable_entry_t *);
int32_t csx_Parse_CISTPL_LINKTARGET(client_handle_t, tuple_t *,
cistpl_linktarget_t *);
int32_t csx_Parse_CISTPL_LONGLINK_A(client_handle_t, tuple_t *,
cistpl_longlink_ac_t *);
int32_t csx_Parse_CISTPL_LONGLINK_C(client_handle_t, tuple_t *,
cistpl_longlink_ac_t *);
int32_t csx_Parse_CISTPL_LONGLINK_MFC(client_handle_t, tuple_t *,
cistpl_longlink_mfc_t *);
int32_t csx_Parse_CISTPL_SPCL(client_handle_t, tuple_t *,
cistpl_spcl_t *);
int32_t csx_Parse_CISTPL_SWIL(client_handle_t, tuple_t *,
cistpl_swil_t *);
int32_t csx_Parse_CISTPL_BAR(client_handle_t, tuple_t *,
cistpl_bar_t *);
int32_t csx_Parse_CISTPL_DEVICEGEO(client_handle_t, tuple_t *,
cistpl_devicegeo_t *);
int32_t csx_Parse_CISTPL_DEVICEGEO_A(client_handle_t, tuple_t *,
cistpl_devicegeo_t *);
int32_t csx_Parse_CISTPL_LONGLINK_CB(client_handle_t, tuple_t *,
cistpl_longlink_cb_t *);
int32_t csx_ParseTuple(client_handle_t, tuple_t *, cisparse_t *, uint32_t);
void csx_Put8(acc_handle_t, uint32_t, uint8_t);
void csx_Put16(acc_handle_t, uint32_t, uint16_t);
void csx_Put32(acc_handle_t, uint32_t, uint32_t);
void csx_Put64(acc_handle_t, uint32_t, uint64_t);
uint8_t csx_Get8(acc_handle_t, uint32_t);
uint16_t csx_Get16(acc_handle_t, uint32_t);
uint32_t csx_Get32(acc_handle_t, uint32_t);
uint64_t csx_Get64(acc_handle_t, uint32_t);
void csx_RepPut8(acc_handle_t, uint8_t *, uint32_t, uint32_t, uint32_t);
void csx_RepPut16(acc_handle_t, uint16_t *, uint32_t, uint32_t, uint32_t);
void csx_RepPut32(acc_handle_t, uint32_t *, uint32_t, uint32_t, uint32_t);
void csx_RepPut64(acc_handle_t, uint64_t *, uint32_t, uint32_t, uint32_t);
void csx_RepGet8(acc_handle_t, uint8_t *, uint32_t, uint32_t, uint32_t);
void csx_RepGet16(acc_handle_t, uint16_t *, uint32_t, uint32_t, uint32_t);
void csx_RepGet32(acc_handle_t, uint32_t *, uint32_t, uint32_t, uint32_t);
void csx_RepGet64(acc_handle_t, uint64_t *, uint32_t, uint32_t, uint32_t);
int32_t csx_GetMappedAddr(acc_handle_t, void **);
int32_t csx_GetPhysAddr(acc_handle_t, void **);
int32_t csx_DupHandle(acc_handle_t, acc_handle_t *, uint32_t);
int32_t csx_FreeHandle(acc_handle_t *);
int32_t csx_GetHandleOffset(acc_handle_t, uint32_t *);
int32_t csx_SetHandleOffset(acc_handle_t, uint32_t);
#define WIN_DATA_WIDTH 0x00000002
#define IO_DATA_PATH_WIDTH 0x00000001
#define IO_DATA_PATH_WIDTH_8 0x00000000
#define IO_DATA_PATH_WIDTH_16 0x00000001
#define REMOVAL_ALL_DEVICE_NODES 0x03
typedef struct request_socket_mask_t sockmask_t;
struct devnode_desc {
char *name;
int32_t spec_type;
int32_t minor_num;
char *node_type;
};
#ifdef __cplusplus
}
#endif
#endif