/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SSERVICE_H
#define _SSERVICE_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* identifiers for all SS functions implemented
*/
#define SS_GetAdapter 0
/*
* XXX
*/
/*
* returns a la Socket Services
*/
/* events for callback */
/* card related events */
/* added for SPARC CPR support */
/* added for dynamic nexus registration */
/* event callback uses an indirect call -- make it look like a function */
/* values for "socket number" field for PCE_SS_INIT_STATE event */
/*
* The following structure is to support CSRegister
*/
typedef struct csregister {
/* CS entry point */
int (*cs_card_services)(int, ...);
/* CS event entry point */
} csregister_t;
/* GetAdapter(get_adapter_t) */
typedef struct get_adapter {
/* IRQ definitions */
/* GetPage(get_page_t) */
typedef struct get_page {
/*
* PS_ATTRIBUTE
* PS_COMMON
* PS_IO (for DoRight?)
* PS_ENABLED
* PS_WP
*/
} get_page_t;
/*
* PS flags
*/
/* GetSocket(get_socket_t) */
typedef struct get_socket {
} get_socket_t;
/* GetStatus(get_ss_status_t) */
typedef struct get_ss_status {
/*
* Socket specific flags and capabilities
*/
/* capabilities only */
/* GetWindow(get_window_t) */
typedef struct get_window {
} get_window_t;
/*
* window flags (state and capabilities)
*/
/* Inquire Adapter(inquire_adapter_t) */
typedef struct inquire_adapter {
struct power_entry {
/*
* VCC
* VPP1
* VPP2
* if none are set, this is end
* of list
*/
} *power_entry;
struct intr_entry {
int pri;
int intr;
/* InquireSocket(inquire_socket_t) */
typedef struct inquire_socket {
/* InquireWindow(inquire_window_t) */
typedef struct memwin_char {
typedef struct iowin_char {
} iowin_char_t;
typedef struct inquire_window {
/* note that we always declare both forms */
/* interface definitions */
/* window capabilities */
/* generic */
/* I/O and memory */
/* memory only */
/* I/O only */
/* SetPage(set_page_t *) */
typedef struct set_page {
} set_page_t;
/* SetSocket(set_socket_t) */
typedef struct set_socket {
unsigned State;
} set_socket_t;
/* SetIRQHandler(set_irq_handler_t) */
typedef struct set_irq_handler {
unsigned irq;
/* interrupt priority levels */
/* ClearIRQHandler(clear_irq_handler_t) */
typedef struct clear_irq_handler {
unsigned socket;
/* SetWindow(set_window_t) */
typedef struct set_window {
} set_window_t;
/* CSInitDev */
typedef
struct ss_make_device_node {
/*
* csss_adapter_info_t - provides additional per-socket adapter info
*/
typedef struct csss_adapter_info_t {
/* CSGetCookiesAndDip */
typedef struct get_cookies_and_dip_t {
/* ResetSocket */
/* union of all exported functions functions */
typedef
union sservice {
} sservice_t;
/* event manager structures */
struct pcm_make_dev {
int socket;
int flags;
int op;
int type;
};
#ifdef _KERNEL
/*
* prototypes for nexi
*/
int, char *, caddr_t, int *);
int pcmcia_power(dev_info_t *, int, int);
void pcmcia_begin_resume(dev_info_t *);
void pcmcia_wait_insert(dev_info_t *);
/* resource allocation functions and structure */
typedef struct ra_return {
} ra_return_t;
dev_info_t **);
dev_info_t **);
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SSERVICE_H */