Home | History | Annotate | Line # | Download | only in aic7xxx
      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