Add __DragonFly__
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 12 Feb 2004 23:33:27 +0000 (23:33 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 12 Feb 2004 23:33:27 +0000 (23:33 +0000)
13 files changed:
sys/emulation/svr4/svr4_misc.c
sys/i386/acpica/acpi_machdep.c
sys/i386/acpica/acpi_wakeup.c
sys/i386/gnu/isa/sound/awe_compat.h
sys/i386/gnu/isa/sound/awe_config.h
sys/i386/gnu/isa/sound/awe_wave.c
sys/i386/include/physio_proc.h
sys/platform/pc32/acpica/acpi_machdep.c
sys/platform/pc32/acpica/acpi_wakeup.c
sys/platform/pc32/gnu/isa/sound/awe_compat.h
sys/platform/pc32/gnu/isa/sound/awe_config.h
sys/platform/pc32/gnu/isa/sound/awe_wave.c
sys/platform/pc32/include/physio_proc.h

index c3a6c6f..c9f32a4 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  * 
  * $FreeBSD: src/sys/svr4/svr4_misc.c,v 1.13.2.7 2003/01/14 21:33:58 dillon Exp $
- * $DragonFly: src/sys/emulation/svr4/Attic/svr4_misc.c,v 1.19 2003/11/15 21:05:43 dillon Exp $
+ * $DragonFly: src/sys/emulation/svr4/Attic/svr4_misc.c,v 1.20 2004/02/12 23:33:26 joerg Exp $
  */
 
 /*
@@ -83,7 +83,7 @@
 #include <vm/vm_param.h>
 #include <vm/vm_map.h>
 
-#if defined(__FreeBSD__)
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #include <vm/vm_extern.h>
 #endif
 
index 0fa07b6..721956b 100644 (file)
@@ -22,7 +22,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *      $DragonFly: src/sys/i386/acpica/Attic/acpi_machdep.c,v 1.1 2003/09/24 03:32:16 drhodus Exp $ 
+ *      $DragonFly: src/sys/i386/acpica/Attic/acpi_machdep.c,v 1.2 2004/02/12 23:33:26 joerg Exp $ 
  */
 
 #include <sys/cdefs.h>
@@ -44,7 +44,7 @@ static device_t       acpi_dev;
  * APM driver emulation 
  */
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #include <sys/select.h>
 #else
 #include <sys/selinfo.h>
@@ -53,7 +53,7 @@ static device_t       acpi_dev;
 #include <machine/apm_bios.h>
 #include <machine/pc/bios.h>
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #include <i386/apm/apm.h>
 #else
 #include <i386/bios/apm.h>
index 24c40ca..ffaa16b 100644 (file)
@@ -23,7 +23,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * $DragonFly: src/sys/i386/acpica/Attic/acpi_wakeup.c,v 1.1 2003/09/24 03:32:16 drhodus Exp $
+ * $DragonFly: src/sys/i386/acpica/Attic/acpi_wakeup.c,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 #include <sys/cdefs.h>
@@ -59,7 +59,7 @@
 
 #include "acpi_wakecode.h"
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #define        vm_page_lock_queues()
 #define        vm_page_unlock_queues()
 #endif
index c2b0ee5..eeac113 100644 (file)
@@ -19,6 +19,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $DragonFly: src/sys/i386/gnu/isa/sound/Attic/awe_compat.h,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 /*----------------------------------------------------------------
@@ -148,7 +150,7 @@ static void *my_realloc(void *buf, int oldsize, int size)
 #define MEMCPY(dst,src,len)    memcpy(dst, src, len)
 
 
-#elif defined(__FreeBSD__)
+#elif defined(__DragonFly__) || defined(__FreeBSD__)
 
 /*================================================================
  * FreeBSD macros
index 70efaac..cf2b3f9 100644 (file)
@@ -19,6 +19,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $DragonFly: src/sys/i386/gnu/isa/sound/Attic/awe_config.h,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 #ifndef AWE_CONFIG_H_DEF
 
 #ifdef AWE_OBSOLETE_VOXWARE
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <i386/isa/sound/sound_config.h>
 #else
 #  include "sound_config.h"
 #include "lowlevel.h"
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <i386/isa/sound/sound_config.h>
 #  if defined(CONFIGURE_SOUNDCARD) && defined(CONFIG_AWE32)
 #    define CONFIG_AWE32_SYNTH
index 6680430..8c2fb1a 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $DragonFly: src/sys/i386/gnu/isa/sound/Attic/awe_wave.c,v 1.2 2003/08/07 21:17:21 dillon Exp $
+ * $DragonFly: src/sys/i386/gnu/isa/sound/Attic/awe_wave.c,v 1.3 2004/02/12 23:33:26 joerg Exp $
  */
 
 #include <stddef.h>
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_config.h"
 #else
 #  include "awe_config.h"
@@ -35,7 +35,7 @@
 
 #ifdef CONFIG_AWE32_SYNTH
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_hw.h"
 #  include "awe_version.h"
 #  include "awe_voice.h"
@@ -48,7 +48,7 @@
 #ifdef AWE_HAS_GUS_COMPATIBILITY
 /* include finetune table */
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  ifdef AWE_OBSOLETE_VOXWARE
 #    define SEQUENCER_C
 #  endif
@@ -63,7 +63,7 @@
 
 #ifdef linux
 #  include <linux/ultrasound.h>
-#elif defined(__FreeBSD__)
+#elif defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <machine/ultrasound.h>
 #endif
 
@@ -450,7 +450,7 @@ static int awe_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg);
 #endif
 
 /* define macros for compatibility */
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_compat.h"
 #else
 #  include "awe_compat.h"
@@ -492,7 +492,7 @@ static struct synth_operations awe_operations =
 
 #ifdef CONFIG_AWE32_MIXER
 static struct mixer_operations awe_mixer_operations = {
-#ifndef __FreeBSD__
+#if !defined(__DragonFly__) && !defined(__FreeBSD__)
        "AWE32",
 #endif
        "AWE32 Equalizer",
@@ -511,7 +511,7 @@ static struct mixer_operations awe_mixer_operations = {
 #define ATTACH_DECL    /**/
 #endif
 
-#if defined(__FreeBSD__) && !defined(AWE_OBSOLETE_VOXWARE)
+#if (defined(__DragonFly__) || defined(__FreeBSD__)) && !defined(AWE_OBSOLETE_VOXWARE)
 #  define ATTACH_RET
 void attach_awe(struct address_info *hw_config)
 #else
@@ -582,7 +582,7 @@ int attach_awe(void)
 
        snprintf(awe_info.name, sizeof(awe_info.name), "AWE32-%s (RAM%dk)",
                AWEDRV_VERSION, awe_mem_size/1024);
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        printk("awe0: <SoundBlaster EMU8000 MIDI (RAM%dk)>", awe_mem_size/1024);
 #elif defined(AWE_DEBUG_ON)
        printk("%s\n", awe_info.name);
@@ -639,7 +639,7 @@ void unload_awe(void)
 
 #ifdef AWE_OBSOLETE_VOXWARE
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 long attach_awe_obsolete(long mem_start, struct address_info *hw_config)
 #else
 int attach_awe_obsolete(int mem_start, struct address_info *hw_config)
@@ -658,7 +658,7 @@ int probe_awe_obsolete(struct address_info *hw_config)
 }
 
 #else
-#if defined(__FreeBSD__ )
+#if defined(__DragonFly__) || defined(__FreeBSD__ )
 int probe_awe(struct address_info *hw_config)
 {
        return 1;
@@ -3088,7 +3088,7 @@ awe_replace_data(awe_patch_info *patch, const char *addr, int count)
 static const char *readbuf_addr;
 static int readbuf_offs;
 static int readbuf_flags;
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 static unsigned short *readbuf_loop;
 static int readbuf_loopstart, readbuf_loopend;
 #endif
@@ -3097,7 +3097,7 @@ static int readbuf_loopstart, readbuf_loopend;
 static int
 readbuf_init(const char *addr, int offset, awe_sample_info *sp)
 {
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        readbuf_loop = NULL;
        readbuf_loopstart = sp->loopstart;
        readbuf_loopend = sp->loopend;
@@ -3131,7 +3131,7 @@ readbuf_word(int pos)
        }
        if (readbuf_flags & AWE_SAMPLE_UNSIGNED)
                c ^= 0x8000; /* unsigned -> signed */
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        /* write on cache for reverse loop */
        if (readbuf_flags & (AWE_SAMPLE_BIDIR_LOOP|AWE_SAMPLE_REVERSE_LOOP)) {
                if (pos >= readbuf_loopstart && pos < readbuf_loopend)
@@ -3141,7 +3141,7 @@ readbuf_word(int pos)
        return c;
 }
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 /* read from cache */
 static unsigned short
 readbuf_word_cache(int pos)
index 8e859b6..bfd9897 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/i386/include/physio_proc.h,v 1.1.2.1 2000/10/29 11:05:48 non Exp $    */
-/*     $DragonFly: src/sys/i386/include/Attic/physio_proc.h,v 1.4 2003/08/26 21:42:18 rob Exp $        */
+/*     $DragonFly: src/sys/i386/include/Attic/physio_proc.h,v 1.5 2004/02/12 23:33:27 joerg Exp $      */
 /*     $NecBSD: physio_proc.h,v 3.4 1999/07/23 20:47:03 honda Exp $    */
 /*     $NetBSD$        */
 
@@ -63,7 +63,7 @@ physio_proc_enter(bp)
 
        s = splstatclock();
        TAILQ_REMOVE(&physio_proc_freet, pp, pp_chain);
-#if !defined(__FreeBSD__) || __FreeBSD_version < 400001
+#if !defined(__DragonFly__) || !defined(__FreeBSD__) || __FreeBSD_version < 400001
        pp->pp_proc = bp->b_proc;
 #endif
        TAILQ_INSERT_TAIL(&physio_proc_busyt, pp, pp_chain);
index db3f684..fe178ad 100644 (file)
@@ -22,7 +22,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *      $DragonFly: src/sys/platform/pc32/acpica/Attic/acpi_machdep.c,v 1.1 2003/09/24 03:32:16 drhodus Exp $ 
+ *      $DragonFly: src/sys/platform/pc32/acpica/Attic/acpi_machdep.c,v 1.2 2004/02/12 23:33:26 joerg Exp $ 
  */
 
 #include <sys/cdefs.h>
@@ -44,7 +44,7 @@ static device_t       acpi_dev;
  * APM driver emulation 
  */
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #include <sys/select.h>
 #else
 #include <sys/selinfo.h>
@@ -53,7 +53,7 @@ static device_t       acpi_dev;
 #include <machine/apm_bios.h>
 #include <machine/pc/bios.h>
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #include <i386/apm/apm.h>
 #else
 #include <i386/bios/apm.h>
index 6937f79..6775c8a 100644 (file)
@@ -23,7 +23,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * $DragonFly: src/sys/platform/pc32/acpica/Attic/acpi_wakeup.c,v 1.1 2003/09/24 03:32:16 drhodus Exp $
+ * $DragonFly: src/sys/platform/pc32/acpica/Attic/acpi_wakeup.c,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 #include <sys/cdefs.h>
@@ -59,7 +59,7 @@
 
 #include "acpi_wakecode.h"
 
-#if __FreeBSD_version < 500000
+#if defined(__DragonFly__) || __FreeBSD_version < 500000
 #define        vm_page_lock_queues()
 #define        vm_page_unlock_queues()
 #endif
index c2b0ee5..6a420c3 100644 (file)
@@ -19,6 +19,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $DragonFly: src/sys/platform/pc32/gnu/isa/sound/Attic/awe_compat.h,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 /*----------------------------------------------------------------
@@ -148,7 +150,7 @@ static void *my_realloc(void *buf, int oldsize, int size)
 #define MEMCPY(dst,src,len)    memcpy(dst, src, len)
 
 
-#elif defined(__FreeBSD__)
+#elif defined(__DragonFly__) || defined(__FreeBSD__)
 
 /*================================================================
  * FreeBSD macros
index 70efaac..8af95d0 100644 (file)
@@ -19,6 +19,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * $DragonFly: src/sys/platform/pc32/gnu/isa/sound/Attic/awe_config.h,v 1.2 2004/02/12 23:33:26 joerg Exp $
  */
 
 #ifndef AWE_CONFIG_H_DEF
 
 #ifdef AWE_OBSOLETE_VOXWARE
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <i386/isa/sound/sound_config.h>
 #else
 #  include "sound_config.h"
 #include "lowlevel.h"
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <i386/isa/sound/sound_config.h>
 #  if defined(CONFIGURE_SOUNDCARD) && defined(CONFIG_AWE32)
 #    define CONFIG_AWE32_SYNTH
index cd94413..49deda2 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $DragonFly: src/sys/platform/pc32/gnu/isa/sound/Attic/awe_wave.c,v 1.2 2003/08/07 21:17:21 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/gnu/isa/sound/Attic/awe_wave.c,v 1.3 2004/02/12 23:33:26 joerg Exp $
  */
 
 #include <stddef.h>
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_config.h"
 #else
 #  include "awe_config.h"
@@ -35,7 +35,7 @@
 
 #ifdef CONFIG_AWE32_SYNTH
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_hw.h"
 #  include "awe_version.h"
 #  include "awe_voice.h"
@@ -48,7 +48,7 @@
 #ifdef AWE_HAS_GUS_COMPATIBILITY
 /* include finetune table */
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  ifdef AWE_OBSOLETE_VOXWARE
 #    define SEQUENCER_C
 #  endif
@@ -63,7 +63,7 @@
 
 #ifdef linux
 #  include <linux/ultrasound.h>
-#elif defined(__FreeBSD__)
+#elif defined(__DragonFly__) || defined(__FreeBSD__)
 #  include <machine/ultrasound.h>
 #endif
 
@@ -450,7 +450,7 @@ static int awe_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg);
 #endif
 
 /* define macros for compatibility */
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 #  include "awe_compat.h"
 #else
 #  include "awe_compat.h"
@@ -492,7 +492,7 @@ static struct synth_operations awe_operations =
 
 #ifdef CONFIG_AWE32_MIXER
 static struct mixer_operations awe_mixer_operations = {
-#ifndef __FreeBSD__
+#if !defined(__DragonFly__) && !defined(__FreeBSD__)
        "AWE32",
 #endif
        "AWE32 Equalizer",
@@ -511,7 +511,7 @@ static struct mixer_operations awe_mixer_operations = {
 #define ATTACH_DECL    /**/
 #endif
 
-#if defined(__FreeBSD__) && !defined(AWE_OBSOLETE_VOXWARE)
+#if (defined(__DragonFly__) || defined(__FreeBSD__)) && !defined(AWE_OBSOLETE_VOXWARE)
 #  define ATTACH_RET
 void attach_awe(struct address_info *hw_config)
 #else
@@ -582,7 +582,7 @@ int attach_awe(void)
 
        snprintf(awe_info.name, sizeof(awe_info.name), "AWE32-%s (RAM%dk)",
                AWEDRV_VERSION, awe_mem_size/1024);
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        printk("awe0: <SoundBlaster EMU8000 MIDI (RAM%dk)>", awe_mem_size/1024);
 #elif defined(AWE_DEBUG_ON)
        printk("%s\n", awe_info.name);
@@ -639,7 +639,7 @@ void unload_awe(void)
 
 #ifdef AWE_OBSOLETE_VOXWARE
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 long attach_awe_obsolete(long mem_start, struct address_info *hw_config)
 #else
 int attach_awe_obsolete(int mem_start, struct address_info *hw_config)
@@ -658,7 +658,7 @@ int probe_awe_obsolete(struct address_info *hw_config)
 }
 
 #else
-#if defined(__FreeBSD__ )
+#if defined(__DragonFly__) || defined(__FreeBSD__ )
 int probe_awe(struct address_info *hw_config)
 {
        return 1;
@@ -3088,7 +3088,7 @@ awe_replace_data(awe_patch_info *patch, const char *addr, int count)
 static const char *readbuf_addr;
 static int readbuf_offs;
 static int readbuf_flags;
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 static unsigned short *readbuf_loop;
 static int readbuf_loopstart, readbuf_loopend;
 #endif
@@ -3097,7 +3097,7 @@ static int readbuf_loopstart, readbuf_loopend;
 static int
 readbuf_init(const char *addr, int offset, awe_sample_info *sp)
 {
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        readbuf_loop = NULL;
        readbuf_loopstart = sp->loopstart;
        readbuf_loopend = sp->loopend;
@@ -3131,7 +3131,7 @@ readbuf_word(int pos)
        }
        if (readbuf_flags & AWE_SAMPLE_UNSIGNED)
                c ^= 0x8000; /* unsigned -> signed */
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
        /* write on cache for reverse loop */
        if (readbuf_flags & (AWE_SAMPLE_BIDIR_LOOP|AWE_SAMPLE_REVERSE_LOOP)) {
                if (pos >= readbuf_loopstart && pos < readbuf_loopend)
@@ -3141,7 +3141,7 @@ readbuf_word(int pos)
        return c;
 }
 
-#ifdef __FreeBSD__
+#if defined(__DragonFly__) || defined(__FreeBSD__)
 /* read from cache */
 static unsigned short
 readbuf_word_cache(int pos)
index e34a3a9..66dd933 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/sys/i386/include/physio_proc.h,v 1.1.2.1 2000/10/29 11:05:48 non Exp $    */
-/*     $DragonFly: src/sys/platform/pc32/include/Attic/physio_proc.h,v 1.4 2003/08/26 21:42:18 rob Exp $       */
+/*     $DragonFly: src/sys/platform/pc32/include/Attic/physio_proc.h,v 1.5 2004/02/12 23:33:27 joerg Exp $     */
 /*     $NecBSD: physio_proc.h,v 3.4 1999/07/23 20:47:03 honda Exp $    */
 /*     $NetBSD$        */
 
@@ -63,7 +63,7 @@ physio_proc_enter(bp)
 
        s = splstatclock();
        TAILQ_REMOVE(&physio_proc_freet, pp, pp_chain);
-#if !defined(__FreeBSD__) || __FreeBSD_version < 400001
+#if !defined(__DragonFly__) || !defined(__FreeBSD__) || __FreeBSD_version < 400001
        pp->pp_proc = bp->b_proc;
 #endif
        TAILQ_INSERT_TAIL(&physio_proc_busyt, pp, pp_chain);