1 | /* $NetBSD: aicasm.h,v 1.4 2005/12/11 12:22:18 christos Exp $ */ |
2 | |
3 | /* |
4 | * Assembler for the sequencer program downloaded to Aic7xxx SCSI host adapters |
5 | * |
6 | * Copyright (c) 1997 Justin T. Gibbs. |
7 | * Copyright (c) 2001, 2002 Adaptec Inc. |
8 | * All rights reserved. |
9 | * |
10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions |
12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions, and the following disclaimer, |
15 | * without modification. |
16 | * 2. Redistributions in binary form must reproduce at minimum a disclaimer |
17 | * substantially similar to the "NO WARRANTY" disclaimer below |
18 | * ("Disclaimer") and any redistribution must be conditioned upon |
19 | * including a substantially similar Disclaimer requirement for further |
20 | * binary redistribution. |
21 | * 3. Neither the names of the above-listed copyright holders nor the names |
22 | * of any contributors may be used to endorse or promote products derived |
23 | * from this software without specific prior written permission. |
24 | * |
25 | * Alternatively, this software may be distributed under the terms of the |
26 | * GNU General Public License ("GPL") version 2 as published by the Free |
27 | * Software Foundation. |
28 | * |
29 | * NO WARRANTY |
30 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
31 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
32 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR |
33 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
34 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
35 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
36 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
37 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
38 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
39 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
40 | * POSSIBILITY OF SUCH DAMAGES. |
41 | * |
42 | * $FreeBSD: src/sys/dev/aic7xxx/aicasm/aicasm.h,v 1.16 2002/08/31 06:39:40 gibbs Exp $ |
43 | */ |
44 | |
45 | #ifdef __linux__ |
46 | #include "../queue.h" |
47 | #else |
48 | #include <sys/queue.h> |
49 | #endif |
50 | |
51 | #ifndef TRUE |
52 | #define TRUE 1 |
53 | #endif |
54 | |
55 | #ifndef FALSE |
56 | #define FALSE 0 |
57 | #endif |
58 | |
59 | typedef struct path_entry { |
60 | char *directory; |
61 | int quoted_includes_only; |
62 | SLIST_ENTRY(path_entry) links; |
63 | } *path_entry_t; |
64 | |
65 | typedef enum { |
66 | QUOTED_INCLUDE, |
67 | BRACKETED_INCLUDE, |
68 | SOURCE_FILE |
69 | } include_type; |
70 | |
71 | SLIST_HEAD(path_list, path_entry); |
72 | |
73 | extern struct path_list search_path; |
74 | extern struct cs_tailq cs_tailq; |
75 | extern struct scope_list scope_stack; |
76 | extern struct symlist patch_functions; |
77 | extern int includes_search_curdir; /* False if we've seen -I- */ |
78 | extern char *appname; |
79 | extern char *stock_include_file; |
80 | extern int yylineno; |
81 | extern char *yyfilename; |
82 | extern char *prefix; |
83 | extern char *patch_arg_list; |
84 | extern char *versions; |
85 | extern int src_mode; |
86 | extern int dst_mode; |
87 | struct symbol; |
88 | |
89 | void stop(const char *errstring, int err_code); |
90 | void include_file(char *file_name, include_type type); |
91 | void expand_macro(struct symbol *macro_symbol); |
92 | struct instruction *seq_alloc(void); |
93 | struct critical_section *cs_alloc(void); |
94 | struct scope *scope_alloc(void); |
95 | void process_scope(struct scope *); |
96 | |