1/*
2 * We should not even be trying to compile this if we are not doing
3 * a module.
4 */
5#define __NO_VERSION__
6#include <linux/config.h>
7#include <linux/module.h>
8
9#include <linux/sched.h>
10#include <linux/timer.h>
11#include <linux/string.h>
12#include <linux/slab.h>
13#include <linux/ioport.h>
14#include <linux/kernel.h>
15#include <linux/blk.h>
16#include <linux/fs.h>
17
18#include <asm/system.h>
19#include <asm/irq.h>
20#include <asm/dma.h>
21
22#include "scsi.h"
23#include <scsi/scsi_ioctl.h>
24#include "hosts.h"
25#include "constants.h"
26
27#include "sd.h"
28#include <scsi/scsicam.h>
29
30/*
31 * This source file contains the symbol table used by scsi loadable
32 * modules.
33 */
34EXPORT_SYMBOL(scsi_register_module);
35EXPORT_SYMBOL(scsi_unregister_module);
36EXPORT_SYMBOL(scsi_rescan_drive);
37EXPORT_SYMBOL(scsi_remove_drive);
38EXPORT_SYMBOL(scsi_free);
39EXPORT_SYMBOL(scsi_malloc);
40EXPORT_SYMBOL(scsi_register);
41EXPORT_SYMBOL(scsi_unregister);
42EXPORT_SYMBOL(scsicam_bios_param);
43EXPORT_SYMBOL(scsi_partsize);
44EXPORT_SYMBOL(scsi_allocate_device);
45EXPORT_SYMBOL(scsi_do_cmd);
46EXPORT_SYMBOL(scsi_command_size);
47EXPORT_SYMBOL(scsi_ioctl);
48EXPORT_SYMBOL(print_command);
49EXPORT_SYMBOL(print_sense);
50EXPORT_SYMBOL(print_req_sense);
51EXPORT_SYMBOL(print_msg);
52EXPORT_SYMBOL(print_status);
53EXPORT_SYMBOL(scsi_dma_free_sectors);
54EXPORT_SYMBOL(kernel_scsi_ioctl);
55EXPORT_SYMBOL(scsi_need_isa_buffer);
56EXPORT_SYMBOL(scsi_release_command);
57EXPORT_SYMBOL(print_Scsi_Cmnd);
58EXPORT_SYMBOL(scsi_block_when_processing_errors);
59EXPORT_SYMBOL(scsi_mark_host_reset);
60EXPORT_SYMBOL(scsi_ioctl_send_command);
61#if defined(CONFIG_SCSI_LOGGING)	    /* { */
62EXPORT_SYMBOL(scsi_logging_level);
63#endif
64
65EXPORT_SYMBOL(scsi_allocate_request);
66EXPORT_SYMBOL(scsi_release_request);
67EXPORT_SYMBOL(scsi_wait_req);
68EXPORT_SYMBOL(scsi_do_req);
69
70EXPORT_SYMBOL(scsi_report_bus_reset);
71EXPORT_SYMBOL(scsi_block_requests);
72EXPORT_SYMBOL(scsi_unblock_requests);
73
74EXPORT_SYMBOL(scsi_get_host_dev);
75EXPORT_SYMBOL(scsi_free_host_dev);
76
77EXPORT_SYMBOL(scsi_sleep);
78
79EXPORT_SYMBOL(proc_print_scsidevice);
80EXPORT_SYMBOL(proc_scsi);
81
82EXPORT_SYMBOL(scsi_io_completion);
83EXPORT_SYMBOL(scsi_end_request);
84
85EXPORT_SYMBOL(scsi_register_blocked_host);
86EXPORT_SYMBOL(scsi_deregister_blocked_host);
87
88/*
89 * This symbol is for the highlevel drivers (e.g. sg) only.
90 */
91EXPORT_SYMBOL(scsi_reset_provider);
92
93/*
94 * These are here only while I debug the rest of the scsi stuff.
95 */
96EXPORT_SYMBOL(scsi_hostlist);
97EXPORT_SYMBOL(scsi_hosts);
98EXPORT_SYMBOL(scsi_devicelist);
99EXPORT_SYMBOL(scsi_device_types);
100
101/*
102 * Externalize timers so that HBAs can safely start/restart commands.
103 */
104extern void scsi_add_timer(Scsi_Cmnd *, int, void ((*) (Scsi_Cmnd *)));
105extern int scsi_delete_timer(Scsi_Cmnd *);
106EXPORT_SYMBOL(scsi_add_timer);
107EXPORT_SYMBOL(scsi_delete_timer);
108