added a pcmcia bus raw driver compatible with R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15540 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -436,6 +436,30 @@ extern int CardServices(int func, void *a1, void *a2, void *a3);
|
||||
extern int CardServices(int func, ...);
|
||||
#endif
|
||||
|
||||
#ifdef __BEOS__
|
||||
#define SS_MODULE_NAME(s) ("busses/pcmcia/" s "/v1")
|
||||
#define MTD_MODULE_NAME(s) ("busses/pcmcia/" s "/v1")
|
||||
#define CS_CLIENT_MODULE_NAME "bus_managers/pcmcia_cs/client/v1"
|
||||
typedef struct cs_client_module_info {
|
||||
bus_manager_info binfo;
|
||||
int (*_CardServices)(int, ...);
|
||||
int (*_MTDHelperEntry)(int, ...);
|
||||
// void (*_add_timer)(struct timer_list *);
|
||||
// void (*_del_timer)(struct timer_list *);
|
||||
} cs_client_module_info;
|
||||
#define CS_SOCKET_MODULE_NAME "bus_managers/pcmcia_cs/socket/v1"
|
||||
typedef struct cs_socket_module_info {
|
||||
bus_manager_info binfo;
|
||||
int (*_register_ss_entry)(int, ss_entry_t);
|
||||
void (*_unregister_ss_entry)(ss_entry_t);
|
||||
// void (*_add_timer)(struct timer_list *);
|
||||
// void (*_del_timer)(struct timer_list *);
|
||||
int (*register_resource)(int, u_long, u_long);
|
||||
int (*release_resource)(int, u_long, u_long);
|
||||
int (*check_resource)(int, u_long, u_long);
|
||||
} cs_socket_module_info;
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_CS_H */
|
||||
|
||||
@@ -68,6 +68,15 @@ typedef struct driver_operations {
|
||||
int register_driver(struct driver_operations *ops);
|
||||
void unregister_driver(struct driver_operations *ops);
|
||||
|
||||
#ifdef __BEOS__
|
||||
#define CB_ENABLER_MODULE_NAME "bus_managers/cb_enabler/v1"
|
||||
typedef struct cb_enabler_module_info {
|
||||
bus_manager_info binfo;
|
||||
int (*register_driver)(struct driver_operations *ops);
|
||||
void (*unregister_driver)(struct driver_operations *ops);
|
||||
} cb_enabler_module_info;
|
||||
#endif /* __BEOS__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_DRIVER_OPS_H */
|
||||
|
||||
@@ -79,11 +79,19 @@ typedef union ds_ioctl_arg_t {
|
||||
|
||||
#ifndef __HAIKU__
|
||||
#undef _IOC
|
||||
#undef IOCPARM_LEN
|
||||
#undef _IOR
|
||||
#undef _IOW
|
||||
#undef _IOWR
|
||||
#undef IOC_IN
|
||||
#undef IOC_OUT
|
||||
#undef IOC_INOUT
|
||||
#define IOC_IN 1
|
||||
#define IOC_OUT 2
|
||||
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
||||
#define _IOC(inout, group, num, len) \
|
||||
(inout | ((len & IOCPARM_MASK)<<2) | ((group) << 24) | (num<<16))
|
||||
#define IOCPARM_LEN(x) (((x) >> 2) & IOCPARM_MASK)
|
||||
#define _IOR(g,n,t) _IOC(2, (g), (n), sizeof(t))
|
||||
#define _IOW(g,n,t) _IOC(1 , (g), (n), sizeof(t))
|
||||
#define _IOWR(g,n,t) _IOC(3, (g), (n), sizeof(t))
|
||||
@@ -122,8 +130,10 @@ typedef union ds_ioctl_arg_t {
|
||||
typedef struct dev_link_t {
|
||||
dev_node_t *dev;
|
||||
u_int state, open;
|
||||
#ifndef __BEOS__
|
||||
wait_queue_head_t pending;
|
||||
struct timer_list release;
|
||||
#endif
|
||||
client_handle_t handle;
|
||||
io_req_t io;
|
||||
irq_req_t irq;
|
||||
@@ -155,6 +165,18 @@ int unregister_pccard_driver(dev_info_t *dev_info);
|
||||
#define register_pcmcia_driver register_pccard_driver
|
||||
#define unregister_pcmcia_driver unregister_pccard_driver
|
||||
|
||||
#ifdef __BEOS__
|
||||
#define DS_MODULE_NAME "bus_managers/pcmcia_ds/v2"
|
||||
typedef struct ds_module_info {
|
||||
bus_manager_info binfo;
|
||||
int (*_register_pccard_driver)(dev_info_t *,
|
||||
dev_link_t *(*)(void),
|
||||
void (*)(dev_link_t *));
|
||||
int (*_unregister_pccard_driver)(dev_info_t *);
|
||||
int (*get_handle)(int socket, client_handle_t *handle);
|
||||
} ds_module_info;
|
||||
#endif /* __BEOS__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_DS_H */
|
||||
|
||||
Reference in New Issue
Block a user