home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.14 / udk / usr / include / scnhdr.h < prev    next >
C/C++ Source or Header  |  1998-08-19  |  4KB  |  131 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. #ident    "@(#)sgs-head:i386/head/scnhdr.h    1.14"
  12.  
  13. #ifndef _SCNHDR_H
  14. #define _SCNHDR_H
  15.  
  16. struct scnhdr {
  17.     char        s_name[8];    /* section name */
  18.     long        s_paddr;    /* physical address, aliased s_nlib */
  19.     long        s_vaddr;    /* virtual address */
  20.     long        s_size;        /* section size */
  21.     long        s_scnptr;    /* file ptr to raw data for section */
  22.     long        s_relptr;    /* file ptr to relocation */
  23.     long        s_lnnoptr;    /* file ptr to line numbers */
  24. #ifdef m88k
  25.     long        s_nreloc;    /* number of relocation entries */
  26.     union {
  27.         long    su_nlnno;    /* number of line number entries */
  28.         long    su_vendor;    /* BCS effluvia */
  29.     } s_u;
  30. #define s_nlnno        s_u.su_nlnno
  31. #define s_vendor    s_u.su_vendor
  32. #else
  33.     unsigned short    s_nreloc;    /* number of relocation entries */
  34.     unsigned short    s_nlnno;    /* number of line number entries */
  35. #endif
  36.     long        s_flags;    /* flags */
  37. };
  38.  
  39. /* the number of shared libraries in a .lib section in an absolute output file
  40.  * is put in the s_paddr field of the .lib section header, the following define
  41.  * allows it to be referenced as s_nlib
  42.  */
  43.  
  44. #define s_nlib    s_paddr
  45. #define    SCNHDR    struct scnhdr
  46. #define    SCNHSZ    sizeof(SCNHDR)
  47.  
  48. /*
  49.  * Define constants for names of "special" sections
  50.  */
  51.  
  52. #define _TEXT ".text"
  53. #define _DATA ".data"
  54. #define _DATA1 "data1"
  55. #define _BSS  ".bss"
  56. #define _TV  ".tv"
  57. #define _INIT ".init"
  58. #define _RODATA ".rodata"
  59. #define _FINI ".fini"
  60. #define _SHADOW ".shadow"
  61. #ifdef m88k
  62. #define _EXPR ".expr"
  63. #define _COMMENT ".comment"
  64. #endif
  65.  
  66. /*
  67.  * The low 2 bytes of s_flags is used as a section "type"
  68.  */
  69.  
  70. #define STYP_REG    0x00        /* "regular" section:
  71.                         allocated, relocated, loaded */
  72. #define STYP_DSECT    0x01        /* "dummy" section:
  73.                         not allocated, relocated,
  74.                         not loaded */
  75. #define STYP_NOLOAD    0x02        /* "noload" section:
  76.                         allocated, relocated,
  77.                          not loaded */
  78. #define STYP_GROUP    0x04        /* "grouped" section:
  79.                         formed of input sections */
  80. #define STYP_PAD    0x08        /* "padding" section:
  81.                         not allocated, not relocated,
  82.                          loaded */
  83. #define STYP_COPY    0x10        /* "copy" section:
  84.                         for decision function used
  85.                         by field update;  not
  86.                         allocated, not relocated,
  87.                         loaded;  reloc & lineno
  88.                         entries processed normally */
  89. #define STYP_INFO    0x200        /* comment section : not allocated
  90.                         not relocated, not loaded */
  91. #define STYP_LIB    0x800        /* for .lib section : same as INFO */
  92. #define STYP_OVER    0x400        /* overlay section : relocated
  93.                         not allocated or loaded */
  94. #ifdef m88k
  95. /* ZZZ    the below definition (SHADOW) is a bit fishy     */
  96. #define    STYP_SHADOW    0x2000
  97. #else
  98. #define    STYP_SHADOW    0x1000
  99. #endif
  100.                     /* shadow section:
  101.                         not a cohesive section -
  102.                         contains C++ initialized data.
  103.                         Data is broken up and 
  104.                         relocated in final ld. */
  105. #define    STYP_TEXT    0x20        /* section contains text only */
  106. #define STYP_DATA    0x40        /* section contains data only */
  107. #define STYP_BSS    0x80        /* section contains bss only */
  108. #ifdef m88k
  109. #define STYP_VENDOR    0x1000        /* new BCS vendor specific section */
  110. #endif
  111. #ifdef i860
  112. #define STYP_ABS    0x100        /* section contains abs only */
  113. #endif
  114.  
  115. /*
  116.  *  In a minimal file or an update file, a new function
  117.  *  (as compared with a replaced function) is indicated by S_NEWFCN
  118.  */
  119.  
  120. #define S_NEWFCN  0x100
  121.  
  122. /*
  123.  * In 3b Update Files (output of ogen), sections which appear in SHARED
  124.  * segments of the Pfile will have the S_SHRSEG flag set by ogen, to inform
  125.  * dufr that updating 1 copy of the proc. will update all process invocations.
  126.  */
  127.  
  128. #define S_SHRSEG    0x20
  129.  
  130. #endif     /* _SCNHDR_H */
  131.