OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [include/] [os9k.h] - Diff between revs 827 and 840

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 827 Rev 840
/* os9k.h  -  OS-9000 i386 module header definitions
/* os9k.h  -  OS-9000 i386 module header definitions
   Copyright 2000 Free Software Foundation, Inc.
   Copyright 2000 Free Software Foundation, Inc.
 
 
This file is part of GNU CC.
This file is part of GNU CC.
 
 
GNU CC is free software; you can redistribute it and/or modify
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
the Free Software Foundation; either version 2, or (at your option)
any later version.
any later version.
 
 
GNU CC is distributed in the hope that it will be useful,
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 51 Franklin Street - Fifth Floor,
the Free Software Foundation, 51 Franklin Street - Fifth Floor,
Boston, MA 02110-1301, USA.  */
Boston, MA 02110-1301, USA.  */


#if !defined(_MODULE_H)
#if !defined(_MODULE_H)
#define _MODULE_H
#define _MODULE_H
 
 
#define _MPF386
#define _MPF386
 
 
/* Size of common header less parity field.  */
/* Size of common header less parity field.  */
#define N_M_PARITY  (sizeof(mh_com)-sizeof(unisgned short))
#define N_M_PARITY  (sizeof(mh_com)-sizeof(unisgned short))
#define OLD_M_PARITY 46
#define OLD_M_PARITY 46
#define M_PARITY N_M_PARITY
#define M_PARITY N_M_PARITY
 
 
#ifdef _MPF68K
#ifdef _MPF68K
#define MODSYNC 0x4afc          /* Module header sync code for 680x0 processors.  */
#define MODSYNC 0x4afc          /* Module header sync code for 680x0 processors.  */
#endif
#endif
 
 
#ifdef _MPF386
#ifdef _MPF386
#define MODSYNC 0x4afc          /* Module header sync code for 80386 processors.  */
#define MODSYNC 0x4afc          /* Module header sync code for 80386 processors.  */
#endif
#endif
 
 
#define MODREV  1               /* Module format revision 1.  */
#define MODREV  1               /* Module format revision 1.  */
#define CRCCON  0x800063        /* CRC polynomial constant.  */
#define CRCCON  0x800063        /* CRC polynomial constant.  */
 
 
/* Module access permission values.  */
/* Module access permission values.  */
#define MP_OWNER_READ   0x0001
#define MP_OWNER_READ   0x0001
#define MP_OWNER_WRITE  0x0002
#define MP_OWNER_WRITE  0x0002
#define MP_OWNER_EXEC   0x0004
#define MP_OWNER_EXEC   0x0004
#define MP_GROUP_READ   0x0010
#define MP_GROUP_READ   0x0010
#define MP_GROUP_WRITE  0x0020
#define MP_GROUP_WRITE  0x0020
#define MP_GROUP_EXEC   0x0040
#define MP_GROUP_EXEC   0x0040
#define MP_WORLD_READ   0x0100
#define MP_WORLD_READ   0x0100
#define MP_WORLD_WRITE  0x0200
#define MP_WORLD_WRITE  0x0200
#define MP_WORLD_EXEC   0x0400
#define MP_WORLD_EXEC   0x0400
#define MP_WORLD_ACCESS 0x0777
#define MP_WORLD_ACCESS 0x0777
#define MP_OWNER_MASK   0x000f
#define MP_OWNER_MASK   0x000f
#define MP_GROUP_MASK   0x00f0
#define MP_GROUP_MASK   0x00f0
#define MP_WORLD_MASK   0x0f00
#define MP_WORLD_MASK   0x0f00
#define MP_SYSTM_MASK   0xf000
#define MP_SYSTM_MASK   0xf000
 
 
/* Module Type/Language values.  */
/* Module Type/Language values.  */
#define MT_ANY          0
#define MT_ANY          0
#define MT_PROGRAM      0x0001
#define MT_PROGRAM      0x0001
#define MT_SUBROUT      0x0002
#define MT_SUBROUT      0x0002
#define MT_MULTI        0x0003
#define MT_MULTI        0x0003
#define MT_DATA         0x0004
#define MT_DATA         0x0004
#define MT_TRAPLIB      0x000b
#define MT_TRAPLIB      0x000b
#define MT_SYSTEM       0x000c
#define MT_SYSTEM       0x000c
#define MT_FILEMAN      0x000d
#define MT_FILEMAN      0x000d
#define MT_DEVDRVR      0x000e 
#define MT_DEVDRVR      0x000e 
#define MT_DEVDESC      0x000f
#define MT_DEVDESC      0x000f
#define MT_MASK         0xff00
#define MT_MASK         0xff00
 
 
#define ML_ANY          0
#define ML_ANY          0
#define ML_OBJECT       1
#define ML_OBJECT       1
#define ML_ICODE        2
#define ML_ICODE        2
#define ML_PCODE        3
#define ML_PCODE        3
#define ML_CCODE        4
#define ML_CCODE        4
#define ML_CBLCODE      5
#define ML_CBLCODE      5
#define ML_FRTNCODE     6
#define ML_FRTNCODE     6
#define ML_MASK         0x00ff
#define ML_MASK         0x00ff
 
 
#define mktypelang(type, lang)  (((type) << 8) | (lang))
#define mktypelang(type, lang)  (((type) << 8) | (lang))
 
 
/* Module Attribute values.  */
/* Module Attribute values.  */
#define MA_REENT        0x80
#define MA_REENT        0x80
#define MA_GHOST        0x40
#define MA_GHOST        0x40
#define MA_SUPER        0x20
#define MA_SUPER        0x20
#define MA_MASK         0xff00
#define MA_MASK         0xff00
#define MR_MASK         0x00ff
#define MR_MASK         0x00ff
 
 
#define mkattrevs(attr, revs)   (((attr) << 8) | (revs))
#define mkattrevs(attr, revs)   (((attr) << 8) | (revs))
 
 
#define m_user          m_owner.grp_usr.usr
#define m_user          m_owner.grp_usr.usr
#define m_group         m_owner.grp_usr.grp
#define m_group         m_owner.grp_usr.grp
#define m_group_user    m_owner.group_user
#define m_group_user    m_owner.group_user
 
 
/* Macro definitions for accessing module header fields.  */
/* Macro definitions for accessing module header fields.  */
#define MODNAME(mod) ((u_char*)((u_char*)mod + ((Mh_com)mod)->m_name))
#define MODNAME(mod) ((u_char*)((u_char*)mod + ((Mh_com)mod)->m_name))
#if 0
#if 0
/* Appears not to be used, and the u_int32 typedef is gone (because it
/* Appears not to be used, and the u_int32 typedef is gone (because it
   conflicted with a Mach header.  */
   conflicted with a Mach header.  */
#define MODSIZE(mod) ((u_int32)((Mh_com)mod)->m_size)
#define MODSIZE(mod) ((u_int32)((Mh_com)mod)->m_size)
#endif /* 0 */
#endif /* 0 */
#define MHCOM_BYTES_SIZE 80
#define MHCOM_BYTES_SIZE 80
#define N_BADMAG(a) (((a).a_info) != MODSYNC)
#define N_BADMAG(a) (((a).a_info) != MODSYNC)
 
 
typedef struct mh_com
typedef struct mh_com
{
{
  /* Sync bytes ($4afc).  */
  /* Sync bytes ($4afc).  */
  unsigned char m_sync[2];
  unsigned char m_sync[2];
  unsigned char m_sysrev[2];    /* System revision check value.  */
  unsigned char m_sysrev[2];    /* System revision check value.  */
  unsigned char m_size[4];      /* Module size.  */
  unsigned char m_size[4];      /* Module size.  */
  unsigned char m_owner[4];     /* Group/user id.  */
  unsigned char m_owner[4];     /* Group/user id.  */
  unsigned char m_name[4];      /* Offset to module name.  */
  unsigned char m_name[4];      /* Offset to module name.  */
  unsigned char m_access[2];    /* Access permissions.  */
  unsigned char m_access[2];    /* Access permissions.  */
  unsigned char m_tylan[2];     /* Type/lang.  */
  unsigned char m_tylan[2];     /* Type/lang.  */
  unsigned char m_attrev[2];    /* Rev/attr.  */
  unsigned char m_attrev[2];    /* Rev/attr.  */
  unsigned char m_edit[2];      /* Edition.  */
  unsigned char m_edit[2];      /* Edition.  */
  unsigned char m_needs[4];     /* Module hardware requirements flags. (reserved).  */
  unsigned char m_needs[4];     /* Module hardware requirements flags. (reserved).  */
  unsigned char m_usage[4];     /* Comment string offset.  */
  unsigned char m_usage[4];     /* Comment string offset.  */
  unsigned char m_symbol[4];    /* Symbol table offset.  */
  unsigned char m_symbol[4];    /* Symbol table offset.  */
  unsigned char m_exec[4];      /* Offset to execution entry point.  */
  unsigned char m_exec[4];      /* Offset to execution entry point.  */
  unsigned char m_excpt[4];     /* Offset to exception entry point.  */
  unsigned char m_excpt[4];     /* Offset to exception entry point.  */
  unsigned char m_data[4];      /* Data storage requirement.  */
  unsigned char m_data[4];      /* Data storage requirement.  */
  unsigned char m_stack[4];     /* Stack size.  */
  unsigned char m_stack[4];     /* Stack size.  */
  unsigned char m_idata[4];     /* Offset to initialized data.  */
  unsigned char m_idata[4];     /* Offset to initialized data.  */
  unsigned char m_idref[4];     /* Offset to data reference lists.  */
  unsigned char m_idref[4];     /* Offset to data reference lists.  */
  unsigned char m_init[4];      /* Initialization routine offset.  */
  unsigned char m_init[4];      /* Initialization routine offset.  */
  unsigned char m_term[4];      /* Termination routine offset.  */
  unsigned char m_term[4];      /* Termination routine offset.  */
  unsigned char m_ident[2];     /* Ident code for ident program.  */
  unsigned char m_ident[2];     /* Ident code for ident program.  */
  char          m_spare[8];     /* Reserved bytes.  */
  char          m_spare[8];     /* Reserved bytes.  */
  unsigned char m_parity[2];    /* Header parity.  */
  unsigned char m_parity[2];    /* Header parity.  */
} mh_com,*Mh_com;
} mh_com,*Mh_com;
 
 
/* Executable memory module.  */
/* Executable memory module.  */
typedef mh_com *Mh_exec,mh_exec;
typedef mh_com *Mh_exec,mh_exec;
 
 
/* Data memory module.  */
/* Data memory module.  */
typedef mh_com *Mh_data,mh_data;
typedef mh_com *Mh_data,mh_data;
 
 
/* File manager memory module.  */
/* File manager memory module.  */
typedef mh_com *Mh_fman,mh_fman;
typedef mh_com *Mh_fman,mh_fman;
 
 
/* Device driver module.  */
/* Device driver module.  */
typedef mh_com *Mh_drvr,mh_drvr;
typedef mh_com *Mh_drvr,mh_drvr;
 
 
/* Trap handler module.  */
/* Trap handler module.  */
typedef mh_com mh_trap, *Mh_trap;
typedef mh_com mh_trap, *Mh_trap;
 
 
/* Device descriptor module.  */
/* Device descriptor module.  */
typedef mh_com *Mh_dev,mh_dev;
typedef mh_com *Mh_dev,mh_dev;
 
 
/* Configuration module.  */
/* Configuration module.  */
typedef mh_com *Mh_config, mh_config;
typedef mh_com *Mh_config, mh_config;
 
 
#if 0 
#if 0 
 
 
#if !defined(_MODDIR_H)
#if !defined(_MODDIR_H)
/* Go get _os_fmod (and others).  */
/* Go get _os_fmod (and others).  */
#include <moddir.h>
#include <moddir.h>
#endif
#endif
 
 
error_code _os_crc (void *, u_int32, int *);
error_code _os_crc (void *, u_int32, int *);
error_code _os_datmod (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_data **);
error_code _os_datmod (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_data **);
error_code _os_get_moddir (void *, u_int32 *);
error_code _os_get_moddir (void *, u_int32 *);
error_code _os_initdata (mh_com *, void *);
error_code _os_initdata (mh_com *, void *);
error_code _os_link (char **, mh_com **, void **, u_int16 *, u_int16 *);
error_code _os_link (char **, mh_com **, void **, u_int16 *, u_int16 *);
error_code _os_linkm (mh_com *, void **, u_int16 *, u_int16 *);
error_code _os_linkm (mh_com *, void **, u_int16 *, u_int16 *);
error_code _os_load (char *, mh_com **, void **, u_int32, u_int16 *, u_int16 *, u_int32);
error_code _os_load (char *, mh_com **, void **, u_int32, u_int16 *, u_int16 *, u_int32);
error_code _os_mkmodule (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_com **, u_int32);
error_code _os_mkmodule (char *, u_int32, u_int16 *, u_int16 *, u_int32, void **, mh_com **, u_int32);
error_code _os_modaddr (void *, mh_com **);
error_code _os_modaddr (void *, mh_com **);
error_code _os_setcrc (mh_com *);
error_code _os_setcrc (mh_com *);
error_code _os_slink (u_int32, char *, void **, void **, mh_com **);
error_code _os_slink (u_int32, char *, void **, void **, mh_com **);
error_code _os_slinkm (u_int32, mh_com *, void **, void **);
error_code _os_slinkm (u_int32, mh_com *, void **, void **);
error_code _os_unlink (mh_com *);
error_code _os_unlink (mh_com *);
error_code _os_unload (char *, u_int32);
error_code _os_unload (char *, u_int32);
error_code _os_tlink (u_int32, char *, void **, mh_trap **, void *, u_int32);
error_code _os_tlink (u_int32, char *, void **, mh_trap **, void *, u_int32);
error_code _os_tlinkm (u_int32, mh_com *, void **, void *, u_int32);
error_code _os_tlinkm (u_int32, mh_com *, void **, void *, u_int32);
error_code _os_iodel (mh_com *);
error_code _os_iodel (mh_com *);
error_code _os_vmodul (mh_com *, mh_com *, u_int32);
error_code _os_vmodul (mh_com *, mh_com *, u_int32);
#endif /* 0 */
#endif /* 0 */
 
 
#endif
#endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.