UnixOperatingSystem.st
changeset 17631 0441ae93a3e4
parent 17596 082b7d32692a
child 17635 7453d9164a26
equal deleted inserted replaced
17630:918d3b1dde77 17631:0441ae93a3e4
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 1988 by Claus Gittinger
     2  COPYRIGHT (c) 1988 by Claus Gittinger
     5 	      All Rights Reserved
     3 	      All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
    21 		CurrentDirectory LastTimeInfo LastTimeInfoSeconds
    19 		CurrentDirectory LastTimeInfo LastTimeInfoSeconds
    22 		LastTimeInfoMilliseconds LastTimeInfoIsLocal CachedMountPoints
    20 		LastTimeInfoMilliseconds LastTimeInfoIsLocal CachedMountPoints
    23 		CacheMountPointsTimeStamp Codeset CodesetEncoder'
    21 		CacheMountPointsTimeStamp Codeset CodesetEncoder'
    24 	poolDictionaries:''
    22 	poolDictionaries:''
    25 	category:'OS-Unix'
    23 	category:'OS-Unix'
       
    24 !
       
    25 
       
    26 SharedPool subclass:#ELFConstants
       
    27 	instanceVariableNames:''
       
    28 	classVariableNames:'EI_MAG0 ELFMAG0 EI_MAG1 ELFMAG1 EI_MAG2 ELFMAG2 EI_MAG3 ELFMAG3
       
    29 		EI_CLASS ELFCLASSNONE ELFCLASS32 ELFCLASS64 ELFCLASSNUM EI_DATA
       
    30 		ELFDATANONE ELFDATA2LSB ELFDATA2MSB ELFDATANUM EI_VERSION
       
    31 		EI_OSABI ELFOSABI_NONE ELFOSABI_SYSV ELFOSABI_HPUX
       
    32 		ELFOSABI_NETBSD ELFOSABI_GNU ELFOSABI_LINUX ELFOSABI_SOLARIS
       
    33 		ELFOSABI_AIX ELFOSABI_IRIX ELFOSABI_FREEBSD ELFOSABI_TRU64
       
    34 		ELFOSABI_MODESTO ELFOSABI_OPENBSD ELFOSABI_ARM_AEABI ELFOSABI_ARM
       
    35 		ELFOSABI_STANDALONE EI_ABIVERSION EI_PAD ET_NONE ET_REL ET_EXEC
       
    36 		ET_DYN ET_CORE ET_LOOS ET_HIOS ET_LOPROC ET_HIPROC EM_NONE EM_M32
       
    37 		EM_SPARC EM_386 EM_68K EM_88K EM_860 EM_MIPS EM_S370
       
    38 		EM_MIPS_RS3_LE EM_PARISC EM_VPP500 EM_SPARC32PLUS EM_960 EM_PPC
       
    39 		EM_PPC64 EM_S390 EM_V800 EM_FR20 EM_RH32 EM_RCE EM_ARM
       
    40 		EM_FAKE_ALPHA EM_SH EM_SPARCV9 EM_TRICORE EM_ARC EM_H8_300
       
    41 		EM_H8_300H EM_H8S EM_H8_500 EM_IA_64 EM_MIPS_X EM_COLDFIRE
       
    42 		EM_68HC12 EM_MMA EM_PCP EM_NCPU EM_NDR1 EM_STARCORE EM_ME16
       
    43 		EM_ST100 EM_TINYJ EM_X86_64 EM_PDSP EM_FX66 EM_ST9PLUS EM_ST7
       
    44 		EM_68HC16 EM_68HC11 EM_68HC08 EM_68HC05 EM_SVX EM_ST19 EM_VAX
       
    45 		EM_CRIS EM_JAVELIN EM_FIREPATH EM_ZSP EM_MMIX EM_HUANY EM_PRISM
       
    46 		EM_AVR EM_FR30 EM_D10V EM_D30V EM_V850 EM_M32R EM_MN10300
       
    47 		EM_MN10200 EM_PJ EM_OPENRISC EM_ARC_A5 EM_XTENSA EM_AARCH64
       
    48 		EM_TILEPRO EM_MICROBLAZE EM_TILEGX EM_ALPHA EV_NONE EV_CURRENT'
       
    49 	poolDictionaries:''
       
    50 	privateIn:UnixOperatingSystem
       
    51 !
       
    52 
       
    53 Object subclass:#ELFFileHeader
       
    54 	instanceVariableNames:'file data msb'
       
    55 	classVariableNames:''
       
    56 	poolDictionaries:'UnixOperatingSystem::ELFConstants'
       
    57 	privateIn:UnixOperatingSystem
    26 !
    58 !
    27 
    59 
    28 Object subclass:#FileDescriptorHandle
    60 Object subclass:#FileDescriptorHandle
    29 	instanceVariableNames:'fd'
    61 	instanceVariableNames:'fd'
    30 	classVariableNames:'OpenFiles'
    62 	classVariableNames:'OpenFiles'
   555 #ifdef USE_H_ERRNO
   587 #ifdef USE_H_ERRNO
   556 # ifndef h_errno
   588 # ifndef h_errno
   557  extern h_errno;
   589  extern h_errno;
   558 # endif
   590 # endif
   559 #endif
   591 #endif
       
   592 
       
   593 #if (defined(__ELD__) || defined (ELF))
       
   594 # ifndef ELFMAG1
       
   595 #  include <elf.h>
       
   596 # endif
       
   597 #endif
       
   598 
   560 
   599 
   561 %}
   600 %}
   562 ! !
   601 ! !
   563 
   602 
   564 !UnixOperatingSystem primitiveFunctions!
   603 !UnixOperatingSystem primitiveFunctions!
  4817 
  4856 
  4818 getNullDevice
  4857 getNullDevice
  4819     "return the name of the OS's null device"
  4858     "return the name of the OS's null device"
  4820 
  4859 
  4821     ^ '/dev/null'
  4860     ^ '/dev/null'
       
  4861 !
       
  4862 
       
  4863 getObjectFileInfoFor:aStringOrFilename
       
  4864     "Return and info object for given executable or shared object
       
  4865      or throw an error if given file is not a valid an executable now
       
  4866      shared object.
       
  4867 
       
  4868      The info object returned is OS-specific, however it responds to at
       
  4869      least
       
  4870         #isFor32BitArchitecture
       
  4871         #isFor64BitArchitecture ... returns true, if the given object is for
       
  4872                                      32bit, 64bit architecture respectively
       
  4873     "
       
  4874     ^ ELFFileHeader fromFile: aStringOrFilename
       
  4875 
       
  4876     "Created: / 17-03-2015 / 20:52:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  4822 !
  4877 !
  4823 
  4878 
  4824 infoOf:aPathName
  4879 infoOf:aPathName
  4825     "return some object filled with info for the file 'aPathName';
  4880     "return some object filled with info for the file 'aPathName';
  4826      the info (for which corresponding access methods are understood by
  4881      the info (for which corresponding access methods are understood by
  9315 
  9370 
  9316     "
  9371     "
  9317      Codeset := #'utf8-mac'.
  9372      Codeset := #'utf8-mac'.
  9318      CodesetEncoder := nil.
  9373      CodesetEncoder := nil.
  9319      OperatingSystem getCodesetEncoder
  9374      OperatingSystem getCodesetEncoder
  9320      OperatingSystem encodePath:'äöü'
  9375      OperatingSystem encodePath:'äöü'
  9321     "
  9376     "
  9322 
  9377 
  9323     "Modified: / 23-01-2013 / 10:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  9378     "Modified: / 23-01-2013 / 10:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  9324 ! !
  9379 ! !
  9325 
  9380 
 10903      fd argument not integer or bad return code
 10958      fd argument not integer or bad return code
 10904     "
 10959     "
 10905     ^ self primitiveFailed
 10960     ^ self primitiveFailed
 10906 ! !
 10961 ! !
 10907 
 10962 
       
 10963 !UnixOperatingSystem::ELFConstants class methodsFor:'initialization'!
       
 10964 
       
 10965 initialize
       
 10966     "Invoked at system start or when the class is dynamically loaded."
       
 10967 
       
 10968 %{
       
 10969 #define DEFCONST(c) __GLOBAL_SET(__MKSYMBOL("UnixOperatingSystem::ELFConstants:" #c, (OBJ *)0), __MKSMALLINT(c), (OBJ *)0);
       
 10970 
       
 10971     /* Fields in the e_ident array.  The EI_* macros are indices into the
       
 10972        array.  The macros under each EI_* macro are the values the byte
       
 10973        may have.  */
       
 10974 
       
 10975     DEFCONST(EI_MAG0)		/* File identification byte 0 index */
       
 10976     DEFCONST(EI_MAG1)		/* File identification byte 1 index */
       
 10977     DEFCONST(EI_MAG2)		/* File identification byte 2 index */
       
 10978     DEFCONST(EI_MAG3)		/* File identification byte 3 index */
       
 10979 
       
 10980     DEFCONST(EI_CLASS)		/* File class byte index */
       
 10981     DEFCONST(ELFCLASSNONE)	/* Invalid class */
       
 10982     DEFCONST(ELFCLASS32)	/* 32-bit objects */
       
 10983     DEFCONST(ELFCLASS64)	/* 64-bit objects */
       
 10984     DEFCONST(ELFCLASSNUM)
       
 10985 
       
 10986     DEFCONST(EI_DATA)		/* Data encoding byte index */
       
 10987     DEFCONST(ELFDATANONE)	/* Invalid data encoding */
       
 10988     DEFCONST(ELFDATA2LSB)	/* 2's complement, little endian */
       
 10989     DEFCONST(ELFDATA2MSB)	/* 2's complement, big endian */
       
 10990     DEFCONST(ELFDATANUM)
       
 10991 
       
 10992     DEFCONST(EI_VERSION)	/* File version byte index */
       
 10993 				/* Value must be EV_CURRENT */
       
 10994 
       
 10995     DEFCONST(EI_OSABI)		/* OS ABI identification */
       
 10996     DEFCONST(ELFOSABI_NONE)	/* UNIX System V ABI */
       
 10997     DEFCONST(ELFOSABI_SYSV)	/* Alias.  */
       
 10998     DEFCONST(ELFOSABI_HPUX)	/* HP-UX */
       
 10999     DEFCONST(ELFOSABI_NETBSD)	/* NetBSD.  */
       
 11000     DEFCONST(ELFOSABI_GNU)	/* Object uses GNU ELF extensions.  */
       
 11001     DEFCONST(ELFOSABI_LINUX)    /* Compatibility alias.  */
       
 11002     DEFCONST(ELFOSABI_SOLARIS)	/* Sun Solaris.  */
       
 11003     DEFCONST(ELFOSABI_AIX)	/* IBM AIX.  */
       
 11004     DEFCONST(ELFOSABI_IRIX)	/* SGI Irix.  */
       
 11005     DEFCONST(ELFOSABI_FREEBSD)	/* FreeBSD.  */
       
 11006     DEFCONST(ELFOSABI_TRU64)	/* Compaq TRU64 UNIX.  */
       
 11007     DEFCONST(ELFOSABI_MODESTO)	/* Novell Modesto.  */
       
 11008     DEFCONST(ELFOSABI_OPENBSD)	/* OpenBSD.  */
       
 11009     DEFCONST(ELFOSABI_ARM_AEABI)/* ARM EABI */
       
 11010     DEFCONST(ELFOSABI_ARM)	/* ARM */
       
 11011     DEFCONST(ELFOSABI_STANDALONE)/* Standalone (embedded) application */
       
 11012 
       
 11013     DEFCONST(EI_ABIVERSION)	/* ABI version */
       
 11014 
       
 11015     DEFCONST(EI_PAD)		/* Byte index of padding bytes */
       
 11016 
       
 11017     /* Legal values for e_type (object file type).  */
       
 11018 
       
 11019     DEFCONST(ET_NONE)		/* No file type */
       
 11020     DEFCONST(ET_REL)		/* Relocatable file */
       
 11021     DEFCONST(ET_EXEC)		/* Executable file */
       
 11022     DEFCONST(ET_DYN)		/* Shared object file */
       
 11023     DEFCONST(ET_CORE)		/* Core file */
       
 11024 
       
 11025     DEFCONST(ET_LOOS)		/* OS-specific range start */
       
 11026     DEFCONST(ET_HIOS)		/* OS-specific range end */
       
 11027     DEFCONST(ET_LOPROC)		/* Processor-specific range start */
       
 11028     DEFCONST(ET_HIPROC)		/* Processor-specific range end */
       
 11029 
       
 11030     /* Legal values for e_machine (architecture).  */
       
 11031 
       
 11032     DEFCONST(EM_NONE)		/* No machine */
       
 11033     DEFCONST(EM_M32)		/* AT&T WE 32100 */
       
 11034     DEFCONST(EM_SPARC)		/* SUN SPARC */
       
 11035     DEFCONST(EM_386)		/* Intel 80386 */
       
 11036     DEFCONST(EM_68K)		/* Motorola m68k family */
       
 11037     DEFCONST(EM_88K)		/* Motorola m88k family */
       
 11038     DEFCONST(EM_860)		/* Intel 80860 */
       
 11039     DEFCONST(EM_MIPS)		/* MIPS R3000 big-endian */
       
 11040     DEFCONST(EM_S370)		/* IBM System/370 */
       
 11041     DEFCONST(EM_MIPS_RS3_LE)	/* MIPS R3000 little-endian */
       
 11042 
       
 11043     DEFCONST(EM_PARISC)		/* HPPA */
       
 11044     DEFCONST(EM_VPP500)		/* Fujitsu VPP500 */
       
 11045     DEFCONST(EM_SPARC32PLUS)	/* Sun's "v8plus" */
       
 11046     DEFCONST(EM_960)		/* Intel 80960 */
       
 11047     DEFCONST(EM_PPC)		/* PowerPC */
       
 11048     DEFCONST(EM_PPC64)		/* PowerPC 64-bit */
       
 11049     DEFCONST(EM_S390)		/* IBM S390 */
       
 11050 
       
 11051     DEFCONST(EM_V800)		/* NEC V800 series */
       
 11052     DEFCONST(EM_FR20)		/* Fujitsu FR20 */
       
 11053     DEFCONST(EM_RH32)		/* TRW RH-32 */
       
 11054     DEFCONST(EM_RCE)		/* Motorola RCE */
       
 11055     DEFCONST(EM_ARM)		/* ARM */
       
 11056     DEFCONST(EM_FAKE_ALPHA)	/* Digital Alpha */
       
 11057     DEFCONST(EM_SH)		/* Hitachi SH */
       
 11058     DEFCONST(EM_SPARCV9)	/* SPARC v9 64-bit */
       
 11059     DEFCONST(EM_TRICORE)	/* Siemens Tricore */
       
 11060     DEFCONST(EM_ARC)		/* Argonaut RISC Core */
       
 11061     DEFCONST(EM_H8_300)		/* Hitachi H8/300 */
       
 11062     DEFCONST(EM_H8_300H)	/* Hitachi H8/300H */
       
 11063     DEFCONST(EM_H8S)		/* Hitachi H8S */
       
 11064     DEFCONST(EM_H8_500)		/* Hitachi H8/500 */
       
 11065     DEFCONST(EM_IA_64)		/* Intel Merced */
       
 11066     DEFCONST(EM_MIPS_X)		/* Stanford MIPS-X */
       
 11067     DEFCONST(EM_COLDFIRE)	/* Motorola Coldfire */
       
 11068     DEFCONST(EM_68HC12)		/* Motorola M68HC12 */
       
 11069     DEFCONST(EM_MMA)		/* Fujitsu MMA Multimedia Accelerator*/
       
 11070     DEFCONST(EM_PCP)		/* Siemens PCP */
       
 11071     DEFCONST(EM_NCPU)		/* Sony nCPU embeeded RISC */
       
 11072     DEFCONST(EM_NDR1)		/* Denso NDR1 microprocessor */
       
 11073     DEFCONST(EM_STARCORE)	/* Motorola Start*Core processor */
       
 11074     DEFCONST(EM_ME16)		/* Toyota ME16 processor */
       
 11075     DEFCONST(EM_ST100)		/* STMicroelectronic ST100 processor */
       
 11076     DEFCONST(EM_TINYJ)		/* Advanced Logic Corp. Tinyj emb.fam*/
       
 11077     DEFCONST(EM_X86_64)		/* AMD x86-64 architecture */
       
 11078     DEFCONST(EM_PDSP)		/* Sony DSP Processor */
       
 11079 
       
 11080     DEFCONST(EM_FX66)		/* Siemens FX66 microcontroller */
       
 11081     DEFCONST(EM_ST9PLUS)	/* STMicroelectronics ST9+ 8/16 mc */
       
 11082     DEFCONST(EM_ST7)		/* STmicroelectronics ST7 8 bit mc */
       
 11083     DEFCONST(EM_68HC16)		/* Motorola MC68HC16 microcontroller */
       
 11084     DEFCONST(EM_68HC11)		/* Motorola MC68HC11 microcontroller */
       
 11085     DEFCONST(EM_68HC08)		/* Motorola MC68HC08 microcontroller */
       
 11086     DEFCONST(EM_68HC05)		/* Motorola MC68HC05 microcontroller */
       
 11087     DEFCONST(EM_SVX)		/* Silicon Graphics SVx */
       
 11088     DEFCONST(EM_ST19)		/* STMicroelectronics ST19 8 bit mc */
       
 11089     DEFCONST(EM_VAX)		/* Digital VAX */
       
 11090     DEFCONST(EM_CRIS)		/* Axis Communications 32-bit embedded processor */
       
 11091     DEFCONST(EM_JAVELIN)	/* Infineon Technologies 32-bit embedded processor */
       
 11092     DEFCONST(EM_FIREPATH)	/* Element 14 64-bit DSP Processor */
       
 11093     DEFCONST(EM_ZSP)		/* LSI Logic 16-bit DSP Processor */
       
 11094     DEFCONST(EM_MMIX)		/* Donald Knuth's educational 64-bit processor */
       
 11095     DEFCONST(EM_HUANY)		/* Harvard University machine-independent object files */
       
 11096     DEFCONST(EM_PRISM)		/* SiTera Prism */
       
 11097     DEFCONST(EM_AVR)		/* Atmel AVR 8-bit microcontroller */
       
 11098     DEFCONST(EM_FR30)		/* Fujitsu FR30 */
       
 11099     DEFCONST(EM_D10V)		/* Mitsubishi D10V */
       
 11100     DEFCONST(EM_D30V)		/* Mitsubishi D30V */
       
 11101     DEFCONST(EM_V850)		/* NEC v850 */
       
 11102     DEFCONST(EM_M32R)		/* Mitsubishi M32R */
       
 11103     DEFCONST(EM_MN10300)	/* Matsushita MN10300 */
       
 11104     DEFCONST(EM_MN10200)	/* Matsushita MN10200 */
       
 11105     DEFCONST(EM_PJ)		/* picoJava */
       
 11106     DEFCONST(EM_OPENRISC)	/* OpenRISC 32-bit embedded processor */
       
 11107     DEFCONST(EM_ARC_A5)		/* ARC Cores Tangent-A5 */
       
 11108     DEFCONST(EM_XTENSA)		/* Tensilica Xtensa Architecture */
       
 11109     DEFCONST(EM_AARCH64)	/* ARM AARCH64 */
       
 11110     DEFCONST(EM_TILEPRO)	/* Tilera TILEPro */
       
 11111     DEFCONST(EM_MICROBLAZE)	/* Xilinx MicroBlaze */
       
 11112     DEFCONST(EM_TILEGX)		/* Tilera TILE-Gx */
       
 11113 
       
 11114    /* If it is necessary to assign new unofficial EM_* values, please
       
 11115       pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
       
 11116       chances of collision with official or non-GNU unofficial values.  */
       
 11117 
       
 11118     DEFCONST(EM_ALPHA)
       
 11119 
       
 11120     /* Legal values for e_version (version).  */
       
 11121 
       
 11122     DEFCONST(EV_NONE)		/* Invalid ELF version */
       
 11123     DEFCONST(EV_CURRENT)	/* Current version */
       
 11124 
       
 11125 #undef DEFCONST
       
 11126 %}.
       
 11127     ELFMAG0 := 16r7F.
       
 11128     ELFMAG1 := $E codePoint.
       
 11129     ELFMAG2 := $L codePoint.
       
 11130     ELFMAG3 := $F codePoint.
       
 11131 
       
 11132     "Modified (comment): / 16-03-2015 / 15:15:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11133 ! !
       
 11134 
       
 11135 !UnixOperatingSystem::ELFFileHeader class methodsFor:'instance creation'!
       
 11136 
       
 11137 fromFile: aStringOrFilename
       
 11138     ^ self new initializeOnFile: aStringOrFilename
       
 11139 
       
 11140     "Created: / 16-03-2015 / 16:12:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11141 ! !
       
 11142 
       
 11143 !UnixOperatingSystem::ELFFileHeader methodsFor:'accessing'!
       
 11144 
       
 11145 e_ident_class
       
 11146     ^ data at: 1 + EI_CLASS
       
 11147 
       
 11148     "Created: / 17-03-2015 / 20:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11149 !
       
 11150 
       
 11151 e_machine
       
 11152     ^ data unsignedShortAt: 1 + 16r12 bigEndian: msb
       
 11153 
       
 11154     "Created: / 16-03-2015 / 16:29:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11155 ! !
       
 11156 
       
 11157 !UnixOperatingSystem::ELFFileHeader methodsFor:'initialization'!
       
 11158 
       
 11159 initializeOnFile: aStringOrFilename
       
 11160     file := aStringOrFilename asFilename.
       
 11161     file exists ifFalse:[ 
       
 11162         self error:'Given file does not exist'.
       
 11163         ^ nil
       
 11164     ].
       
 11165     file isRegularFile ifFalse:[ 
       
 11166         self error:'Given file is not a regular file'.
       
 11167         ^ nil
       
 11168     ].
       
 11169     file readingFileDo:[ :s |
       
 11170         s binary.
       
 11171         data := s next: 16r18.
       
 11172         (data at: 1 + EI_MAG0) ~~ ELFMAG0 ifTrue:[ 
       
 11173             self error:'Given file is not a valid ELF file (magic not found)'.
       
 11174         ].
       
 11175         (data at: 1 + EI_MAG1) ~~ ELFMAG1 ifTrue:[ 
       
 11176             self error:'Given file is not a valid ELF file (magic not found)'.
       
 11177         ].
       
 11178         (data at: 1 + EI_MAG2) ~~ ELFMAG2 ifTrue:[ 
       
 11179             self error:'Given file is not a valid ELF file (magic not found)'.
       
 11180         ].
       
 11181         (data at: 1 + EI_MAG3) ~~ ELFMAG3 ifTrue:[ 
       
 11182             self error:'Given file is not a valid ELF file (magic not found)'.
       
 11183         ].
       
 11184         msb := (data at: 1 + EI_DATA) == ELFDATA2MSB
       
 11185     ].
       
 11186 
       
 11187     "Created: / 16-03-2015 / 16:13:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11188 ! !
       
 11189 
       
 11190 !UnixOperatingSystem::ELFFileHeader methodsFor:'queries'!
       
 11191 
       
 11192 isFor32BitArchitecture
       
 11193     ^ self e_ident_class == ELFCLASS32
       
 11194 
       
 11195     "Created: / 17-03-2015 / 20:31:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11196 !
       
 11197 
       
 11198 isFor64BitArchitecture
       
 11199     ^ self e_ident_class == ELFCLASS64
       
 11200 
       
 11201     "Created: / 17-03-2015 / 20:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
 11202 ! !
       
 11203 
 10908 !UnixOperatingSystem::FileDescriptorHandle class methodsFor:'change & update'!
 11204 !UnixOperatingSystem::FileDescriptorHandle class methodsFor:'change & update'!
 10909 
 11205 
 10910 update:aspect with:argument from:anObject
 11206 update:aspect with:argument from:anObject
 10911     "one of our registered handles has been collected"
 11207     "one of our registered handles has been collected"
 10912 
 11208 
 12453 	    domain:nil type:nil protocol:nil flags:nil
 12749 	    domain:nil type:nil protocol:nil flags:nil
 12454      self getAddressInfo:'www.exept.de' serviceName:nil
 12750      self getAddressInfo:'www.exept.de' serviceName:nil
 12455 	    domain:#'AF_INET' type:nil protocol:nil flags:nil
 12751 	    domain:#'AF_INET' type:nil protocol:nil flags:nil
 12456      self getAddressInfo:'www.exept.de' serviceName:nil
 12752      self getAddressInfo:'www.exept.de' serviceName:nil
 12457 	    domain:#'AF_INET6' type:nil protocol:nil flags:nil
 12753 	    domain:#'AF_INET6' type:nil protocol:nil flags:nil
 12458      self getAddressInfo:'www.baden-württemberg.de' serviceName:nil
 12754      self getAddressInfo:'www.baden-württemberg.de' serviceName:nil
 12459 	    domain:#'AF_INET' type:#stream protocol:nil flags:nil
 12755 	    domain:#'AF_INET' type:#stream protocol:nil flags:nil
 12460     "
 12756     "
 12461 !
 12757 !
 12462 
 12758 
 12463 getNameInfo:socketAddress wantHostName:wantHostName wantServiceName:wantServiceName datagram:useDatagram flags:flags
 12759 getNameInfo:socketAddress wantHostName:wantHostName wantServiceName:wantServiceName datagram:useDatagram flags:flags
 13855 ! !
 14151 ! !
 13856 
 14152 
 13857 !UnixOperatingSystem class methodsFor:'documentation'!
 14153 !UnixOperatingSystem class methodsFor:'documentation'!
 13858 
 14154 
 13859 version
 14155 version
 13860     ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.423 2015-03-09 17:46:04 cg Exp $'
 14156     ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.424 2015-03-20 10:14:00 vrany Exp $'
 13861 !
 14157 !
 13862 
 14158 
 13863 version_CVS
 14159 version_CVS
 13864     ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.423 2015-03-09 17:46:04 cg Exp $'
 14160     ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.424 2015-03-20 10:14:00 vrany Exp $'
 13865 ! !
 14161 ! !
 13866 
 14162 
 13867 
 14163 
 13868 UnixOperatingSystem initialize!
 14164 UnixOperatingSystem initialize!
       
 14165 UnixOperatingSystem::ELFConstants initialize!
 13869 UnixOperatingSystem::FileDescriptorHandle initialize!
 14166 UnixOperatingSystem::FileDescriptorHandle initialize!