include/pcmcia/ss.h

Source file repositories/reference/linux-study-clean/include/pcmcia/ss.h

File Facts

System
Linux kernel
Corpus path
include/pcmcia/ss.h
Extension
.h
Size
6709 bytes
Lines
258
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct pccard_operations {
	int (*init)(struct pcmcia_socket *s);
	int (*suspend)(struct pcmcia_socket *s);
	int (*get_status)(struct pcmcia_socket *s, u_int *value);
	int (*set_socket)(struct pcmcia_socket *s, socket_state_t *state);
	int (*set_io_map)(struct pcmcia_socket *s, struct pccard_io_map *io);
	int (*set_mem_map)(struct pcmcia_socket *s, struct pccard_mem_map *mem);
};

struct pcmcia_socket {
	struct module			*owner;
	socket_state_t			socket;
	u_int				state;
	u_int				suspended_state;	/* state before suspend */
	u_short				functions;
	u_short				lock_count;
	pccard_mem_map			cis_mem;
	void __iomem 			*cis_virt;
	io_window_t			io[MAX_IO_WIN];
	pccard_mem_map			win[MAX_WIN];
	struct list_head		cis_cache;
	size_t				fake_cis_len;
	u8				*fake_cis;

	struct list_head		socket_list;
	struct completion		socket_released;

	/* deprecated */
	unsigned int			sock;		/* socket number */


	/* socket capabilities */
	u_int				features;
	u_int				irq_mask;
	u_int				map_size;
	u_int				io_offset;
	u_int				pci_irq;
	struct pci_dev			*cb_dev;

	/* socket setup is done so resources should be able to be allocated.
	 * Only if set to 1, calls to find_{io,mem}_region are handled, and
	 * insertio events are actually managed by the PCMCIA layer.*/
	u8				resource_setup_done;

	/* socket operations */
	struct pccard_operations	*ops;
	struct pccard_resource_ops	*resource_ops;
	void				*resource_data;

	/* Zoom video behaviour is so chip specific its not worth adding
	   this to _ops */
	void 				(*zoom_video)(struct pcmcia_socket *,
						      int);

	/* so is power hook */
	int (*power_hook)(struct pcmcia_socket *sock, int operation);

	/* allows tuning the CB bridge before loading driver for the CB card */
#ifdef CONFIG_CARDBUS
	void (*tune_bridge)(struct pcmcia_socket *sock, struct pci_bus *bus);
#endif

	/* state thread */
	struct task_struct		*thread;
	struct completion		thread_done;
	unsigned int			thread_events;
	unsigned int			sysfs_events;

	/* For the non-trivial interaction between these locks,
	 * see Documentation/pcmcia/locking.rst */
	struct mutex			skt_mutex;
	struct mutex			ops_mutex;

	/* protects thread_events and sysfs_events */
	spinlock_t			thread_lock;

	/* pcmcia (16-bit) */
	struct pcmcia_callback		*callback;

#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
	/* The following elements refer to 16-bit PCMCIA devices inserted
	 * into the socket */
	struct list_head		devices_list;

	/* the number of devices, used only internally and subject to
	 * incorrectness and change */
	u8				device_count;

	/* does the PCMCIA card consist of two pseudo devices? */
	u8				pcmcia_pfc;

Annotation

Implementation Notes