linux/drivers/scsi/sym53c8xx_2/sym_fw.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Device driver for the SYMBIOS/LSILOGIC 53C8XX and 53C1010 family 
 * of PCI-SCSI IO processors.
 *
 * Copyright (C) 1999-2001  Gerard Roudier <[email protected]>
 *
 * This driver is derived from the Linux sym53c8xx driver.
 * Copyright (C) 1998-2000  Gerard Roudier
 *
 * The sym53c8xx driver is derived from the ncr53c8xx driver that had been 
 * a port of the FreeBSD ncr driver to Linux-1.2.13.
 *
 * The original ncr driver has been written for 386bsd and FreeBSD by
 *         Wolfgang Stanglmeier        <[email protected]>
 *         Stefan Esser                <[email protected]>
 * Copyright (C) 1994  Wolfgang Stanglmeier
 *
 * Other major contributions:
 *
 * NVRAM detection and reading.
 * Copyright (C) 1997 Richard Waltham <[email protected]>
 *
 *-----------------------------------------------------------------------------
 */

#ifndef	SYM_FW_H
#define SYM_FW_H
/*
 *  Macro used to generate interfaces for script A.
 */
#define SYM_GEN_FW_A(s)

/*
 *  Macro used to generate interfaces for script B.
 */
#define SYM_GEN_FW_B(s)

/*
 *  Macro used to generate interfaces for script Z.
 */
#define SYM_GEN_FW_Z(s)

/*
 *  Generates structure interface that contains 
 *  offsets within script A, B and Z.
 */
#define SYM_GEN_A
#define SYM_GEN_B
#define SYM_GEN_Z
struct sym_fwa_ofs {};
struct sym_fwb_ofs {};
struct sym_fwz_ofs {};

/*
 *  Generates structure interface that contains 
 *  bus addresses within script A, B and Z.
 */
struct sym_fwa_ba {};
struct sym_fwb_ba {};
struct sym_fwz_ba {};
#undef	SYM_GEN_A
#undef	SYM_GEN_B
#undef	SYM_GEN_Z

/*
 *  Let cc know about the name of the controller data structure.
 *  We need this for function prototype declarations just below.
 */
struct sym_hcb;

/*
 *  Generic structure that defines a firmware.
 */ 
struct sym_fw {};

/*
 *  Macro used to declare a firmware.
 */
#define SYM_FW_ENTRY(fw, name)

/*
 *  Macros used from the C code to get useful
 *  SCRIPTS bus addresses.
 */
#define SCRIPTA_BA(np, label)
#define SCRIPTB_BA(np, label)
#define SCRIPTZ_BA(np, label)

/*
 *  Macros used by scripts definitions.
 *
 *  HADDR_1 generates a reference to a field of the controller data.
 *  HADDR_2 generates a reference to a field of the controller data
 *          with offset.
 *  RADDR_1 generates a reference to a script processor register.
 *  RADDR_2 generates a reference to a script processor register
 *          with offset.
 *  PADDR_A generates a reference to another part of script A.
 *  PADDR_B generates a reference to another part of script B.
 *
 *  SYM_GEN_PADDR_A and SYM_GEN_PADDR_B are used to define respectively 
 *  the PADDR_A and PADDR_B macros for each firmware by setting argument 
 *  `s' to the name of the corresponding structure.
 *
 *  SCR_DATA_ZERO is used to allocate a DWORD of data in scripts areas.
 */

#define RELOC_SOFTC
#define RELOC_LABEL_A
#define RELOC_REGISTER
#define RELOC_LABEL_B
#define RELOC_MASK

#define HADDR_1(label)
#define HADDR_2(label,ofs)
#define RADDR_1(label)
#define RADDR_2(label,ofs)

#define SYM_GEN_PADDR_A(s, label)
#define SYM_GEN_PADDR_B(s, label)

#define SCR_DATA_ZERO

#endif	/* SYM_FW_H */