2001-02-13 10:42:55 +00:00
|
|
|
/* $Id$
|
|
|
|
*
|
|
|
|
* This file is (c) under GNU PUBLIC LICENSE
|
2001-02-11 22:46:19 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2001-12-05 14:23:39 +00:00
|
|
|
#include <linux/slab.h>
|
2001-02-11 22:46:19 +00:00
|
|
|
#include <linux/string.h>
|
|
|
|
#include <linux/hisaxif.h>
|
|
|
|
#include "helper.h"
|
2001-03-03 08:07:30 +00:00
|
|
|
#ifdef MEMDBG
|
|
|
|
#include "memdbg.h"
|
|
|
|
#endif
|
|
|
|
|
2001-02-11 22:46:19 +00:00
|
|
|
#define HISAX_MAJOR 46
|
2001-09-29 20:05:01 +00:00
|
|
|
#define HISAX_MINOR_CORE 0
|
|
|
|
#define HISAX_MINOR_RAW_MIN 128
|
|
|
|
#define HISAX_MINOR_RAW_MAX 255
|
|
|
|
|
2001-02-11 22:46:19 +00:00
|
|
|
#define HISAX_DEVBUF_SIZE 8192
|
|
|
|
|
|
|
|
/* debugging */
|
|
|
|
#define DEBUG_CORE_FUNC 0x0001
|
|
|
|
#define DEBUG_DUMMY_FUNC 0x0002
|
|
|
|
#define DEBUG_DEV_OP 0x0100
|
|
|
|
#define DEBUG_MGR_FUNC 0x0200
|
2001-09-29 20:05:01 +00:00
|
|
|
#define DEBUG_DEV_TIMER 0x0400
|
2001-02-11 22:46:19 +00:00
|
|
|
#define DEBUG_RDATA 0x1000
|
|
|
|
#define DEBUG_WDATA 0x2000
|
|
|
|
|
|
|
|
/* from hisax_dev.c */
|
2001-02-22 10:14:16 +00:00
|
|
|
|
2001-09-29 20:05:01 +00:00
|
|
|
extern int init_hisaxdev(int);
|
|
|
|
extern int free_hisaxdev(void);
|
|
|
|
extern hisaxdevice_t *get_free_rawdevice(void);
|
|
|
|
extern int free_device(hisaxdevice_t *dev);
|
2001-02-11 22:46:19 +00:00
|
|
|
|
2001-02-22 10:14:16 +00:00
|
|
|
/* from hisax_stack.c */
|
|
|
|
|
|
|
|
extern hisaxstack_t *hisax_stacklist;
|
2001-05-18 00:48:52 +00:00
|
|
|
extern hisaxinstance_t *hisax_instlist;
|
2001-02-22 10:14:16 +00:00
|
|
|
|
2001-05-18 00:48:52 +00:00
|
|
|
extern void get_stack_info(iframe_t *);
|
2001-02-27 17:45:44 +00:00
|
|
|
extern int get_stack_cnt(void);
|
|
|
|
extern hisaxstack_t *get_stack4id(int);
|
2001-03-26 11:40:02 +00:00
|
|
|
extern hisaxstack_t *new_stack(hisaxstack_t *, hisaxinstance_t *);
|
2001-03-03 08:07:30 +00:00
|
|
|
extern int release_stack(hisaxstack_t *);
|
2001-02-27 17:45:44 +00:00
|
|
|
extern void release_stacks(hisaxobject_t *);
|
|
|
|
extern int set_stack(hisaxstack_t *, hisax_pid_t *);
|
|
|
|
extern int clear_stack(hisaxstack_t *);
|
2001-03-03 08:07:30 +00:00
|
|
|
extern hisaxlayer_t *getlayer4lay(hisaxstack_t *, int);
|
|
|
|
extern hisaxinstance_t *get_instance(hisaxstack_t *, int, int);
|
2001-02-22 10:14:16 +00:00
|
|
|
|
|
|
|
/* from hisax_core.c */
|
|
|
|
|
|
|
|
extern hisaxobject_t *hisax_objects;
|
|
|
|
extern int core_debug;
|
2001-02-11 22:46:19 +00:00
|
|
|
|
2001-03-03 08:07:30 +00:00
|
|
|
extern void hisaxlock_core(void);
|
|
|
|
extern void hisaxunlock_core(void);
|
|
|
|
extern int register_layer(hisaxstack_t *, hisaxinstance_t *);
|
|
|
|
extern int unregister_instance(hisaxinstance_t *);
|
2001-03-26 11:40:02 +00:00
|
|
|
extern hisaxinstance_t *get_next_instance(hisaxstack_t *, hisax_pid_t *);
|
2001-04-08 16:45:56 +00:00
|
|
|
extern hisaxobject_t *get_object(int);
|
|
|
|
extern hisaxinstance_t *get_instance4id(int);
|