[MKISOFS]
authorColin Finck <colin@reactos.org>
Thu, 27 Oct 2016 22:51:59 +0000 (22:51 +0000)
committerColin Finck <colin@reactos.org>
Thu, 27 Oct 2016 22:51:59 +0000 (22:51 +0000)
Import a minimal version of the highly portable mkisofs tool from schily-2016-10-27 (https://sf.net/projects/schilytools) and use it for creating ReactOS ISOs from now on.

mkisofs is the de-facto standard ISO creation tool on most platforms and actively maintained.
Compared to cdmake, its features have matured and it adds ISO9660:1999 support among many other things.
I can import its UDF features as soon as we need them.

mkisofs has been integrated into our buildsystem in the sdk/tools/mkisofs folder with these subfolders:
* "reactos"
  Host-specific include files that are usually generated by the upstream buildsystem. For us, I have handcrafted them to be enough for mkisofs and compatible with Windows, Linux and Mac OS X.
  Follow the original layout of the generated files whenever you have to edit these.
* "schilytools"
  Contains the actual mkisofs code and dependencies while maintaining the original directory layout.
  Only synchronize with newer versions, but never modify. Submit patches upstream instead :)

ISOs are now being built with a single ISO9660:1999 filesystem instead of classic ISO9660 + Joliet.
For the moment, you can switch back to cdmake using -DUSE_MKISOFS:BOOL=0 on the CMake commandline. cdmake will be completely removed in about a month if no problems occur.

CORE-11988

svn path=/trunk/; revision=73051

120 files changed:
reactos/CMakeLists.txt
reactos/boot/CMakeLists.txt
reactos/sdk/cmake/host-tools.cmake
reactos/sdk/tools/CMakeLists.txt
reactos/sdk/tools/mkisofs/CMakeLists.txt [new file with mode: 0644]
reactos/sdk/tools/mkisofs/reactos/align.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/reactos/avoffset.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/reactos/xconfig.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/CDDL.Schily.txt [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/cdrecord/version.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/align.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/archdefs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/avoffset.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/btorder.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/ccomdefs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/checkerr.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/ctype.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/device.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/dirent.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/dlfcn.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/errno.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/fcntl.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/float.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/fnmatch.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/getargs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/iconv.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/intcvt.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/inttypes.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/io.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/libport.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/limits.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/locale.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/math.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/maxpath.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/mconfig.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/nlsdefs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/param.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/patmatch.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/prototyp.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/siconv.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/sigblk.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/standard.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/stat.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/stdint.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/stdio.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/stdlib.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/string.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/time.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/types.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/unistd.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/utypes.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/varargs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/wchar.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/wctype.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/windows.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/include/schily/xconfig.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/astoll.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/checkerr.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/comerr.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/dirent.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/eaccess.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/error.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/fconv.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/fillbytes.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/fnmatch.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/format.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/getargs.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/geterrno.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/getexecpath.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/gettimeofday.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/gid.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/jsprintf.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/jssnprintf.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/match.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/mem.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/movebytes.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/raisecond.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/saveargs.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/searchinpath.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/seterrno.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/cvmod.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/dat.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/fcons.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/ffileread.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/fgetline.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/fileopen.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/filewrite.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/flag.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/niwrite.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/stdio/schilyio.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/streql.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/strlcat.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/strlcpy.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/uid.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libschily/zerobytes.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/libsiconv/sic_nls.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/boot.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/bootinfo.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/defaults.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/diskmbr.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/eltorito.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/hash.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/inode.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/iso9660.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/isonum.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/joliet.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/match.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/match.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/mkisofs.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/mkisofs.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/multi.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/name.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/rock.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/rock.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/scsi.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/stream.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/sunlabel.h [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/tree.c [new file with mode: 0644]
reactos/sdk/tools/mkisofs/schilytools/mkisofs/write.c [new file with mode: 0644]

index 7ca0668..0f95bc7 100644 (file)
@@ -37,6 +37,10 @@ set(CMAKE_COLOR_MAKEFILE OFF)
 #set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
 set(CMAKE_SKIP_INSTALL_RULES ON)
 
+if(NOT DEFINED USE_MKISOFS)
+    set(USE_MKISOFS TRUE)
+endif()
+
 if(NOT DEFINED NEW_STYLE_BUILD)
     set(NEW_STYLE_BUILD TRUE)
 endif()
@@ -106,9 +110,9 @@ if(NOT CMAKE_CROSSCOMPILING)
 
     if(NOT NEW_STYLE_BUILD)
         if(NOT MSVC)
-            export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive obj2bin spec2def geninc rsym mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+            export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive mkisofs obj2bin spec2def geninc rsym mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
         else()
-            export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive obj2bin spec2def geninc mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+            export(TARGETS bin2c widl gendib cabman cdmake fatten hpp mkhive mkisofs obj2bin spec2def geninc mkshelllink utf16le xml2sdb FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
         endif()
     endif()
 
index 2e42026..d230ef3 100644 (file)
@@ -24,47 +24,87 @@ add_custom_target(efisys
 #clear it out
 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.lst "")
 
-add_custom_target(bootcd
-    COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/bootcd.lst REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso
-    DEPENDS native-cdmake efisys
-    VERBATIM)
+if(USE_MKISOFS)
+    add_custom_target(bootcd
+        COMMAND native-mkisofs -o ${REACTOS_BINARY_DIR}/bootcd.iso -iso-level 4 -volid "ReactOS" -path-list ${CMAKE_CURRENT_BINARY_DIR}/bootcd.lst -graft-points -no-cache-inodes -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -hide boot.catalog -publisher "ReactOS Foundation" -preparer "ReactOS Foundation"
+        DEPENDS native-mkisofs
+        VERBATIM)
+else()
+    add_custom_target(bootcd
+        COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/bootcd.lst REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso
+        DEPENDS native-cdmake efisys
+        VERBATIM)
+endif()
 
 ##bootcdregtest
 #clear it out
 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.lst "")
 
-add_custom_target(bootcdregtest
-    COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isobtrt.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.lst REACTOS ${REACTOS_BINARY_DIR}/bootcdregtest.iso
-    DEPENDS native-cdmake efisys
-    VERBATIM)
+if(USE_MKISOFS)
+    add_custom_target(bootcdregtest
+        COMMAND native-mkisofs -o ${REACTOS_BINARY_DIR}/bootcdregtest.iso -iso-level 4 -volid "ReactOS" -path-list ${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.lst -graft-points -no-cache-inodes -eltorito-boot loader/isobtrt.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -hide boot.catalog -publisher "ReactOS Foundation" -preparer "ReactOS Foundation"
+        DEPENDS native-mkisofs
+        VERBATIM)
+else()
+    add_custom_target(bootcdregtest
+        COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isobtrt.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.lst REACTOS ${REACTOS_BINARY_DIR}/bootcdregtest.iso
+        DEPENDS native-cdmake efisys
+        VERBATIM)
+endif()
 
 ##livecd
 #clear it out
 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "")
 
-#create the empty Desktop, Favorites, and Start Menu folders
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Desktop\n")
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Favorites\n")
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Start Menu/Programs\n")
+if(USE_MKISOFS)
+    #create the empty Desktop, Favorites, and Start Menu folders
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Desktop=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Favorites=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Start Menu/Programs=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
 
-add_custom_target(livecd
-    COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/livecd.lst REACTOS ${REACTOS_BINARY_DIR}/livecd.iso
-    DEPENDS native-cdmake efisys
-    VERBATIM)
+    add_custom_target(livecd
+        COMMAND native-mkisofs -o ${REACTOS_BINARY_DIR}/livecd.iso -iso-level 4 -volid "ReactOS" -path-list ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst -graft-points -no-cache-inodes -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -hide boot.catalog -publisher "ReactOS Foundation" -preparer "ReactOS Foundation"
+        DEPENDS native-mkisofs
+        VERBATIM)
+else()
+    #create the empty Desktop, Favorites, and Start Menu folders
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Desktop\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Favorites\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.lst "Profiles/Default User/Start Menu/Programs\n")
+
+    add_custom_target(livecd
+        COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/livecd.lst REACTOS ${REACTOS_BINARY_DIR}/livecd.iso
+        DEPENDS native-cdmake efisys
+        VERBATIM)
+endif()
 
 ##hybridcd
 #clear it out
 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "")
 
-#create the empty Desktop, Favorites, and Start Menu folders
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Desktop\n")
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Favorites\n")
-file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Start Menu/Programs\n")
+if(USE_MKISOFS)
+    #create the empty Desktop, Favorites, and Start Menu folders
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Desktop=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Favorites=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Start Menu/Programs=${REACTOS_SOURCE_DIR}/boot/bootdata/empty\n")
 
-add_custom_target(hybridcd
-    COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst REACTOS ${REACTOS_BINARY_DIR}/hybridcd.iso
-    DEPENDS native-cdmake efisys bootcd livecd
-    VERBATIM)
+    add_custom_target(hybridcd
+        COMMAND native-mkisofs -o ${REACTOS_BINARY_DIR}/hybridcd.iso -iso-level 4 -volid "ReactOS" -path-list ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst -graft-points -no-cache-inodes -eltorito-boot loader/isoboot.bin -no-emul-boot -boot-load-size 4 -eltorito-alt-boot -eltorito-platform efi -eltorito-boot loader/efisys.bin -hide boot.catalog -publisher "ReactOS Foundation" -preparer "ReactOS Foundation"
+        DEPENDS native-mkisofs bootcd livecd
+        VERBATIM)
+
+    add_cd_file(TARGET efisys FILE ${CMAKE_CURRENT_BINARY_DIR}/efisys.bin DESTINATION loader NO_CAB FOR bootcd regtest livecd hybridcd)
+else()
+    #create the empty Desktop, Favorites, and Start Menu folders
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Desktop\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Favorites\n")
+    file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst "livecd/Profiles/Default User/Start Menu/Programs\n")
+
+    add_custom_target(hybridcd
+        COMMAND native-cdmake -j -m -bootdata:2\#p0,e,b${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin\#pEF,e,b${CMAKE_CURRENT_BINARY_DIR}/efisys.bin @${CMAKE_CURRENT_BINARY_DIR}/hybridcd.lst REACTOS ${REACTOS_BINARY_DIR}/hybridcd.iso
+        DEPENDS native-cdmake efisys bootcd livecd
+        VERBATIM)
+endif()
 
 add_subdirectory(freeldr)
 add_subdirectory(bootdata)
index a9d874f..06b4875 100644 (file)
@@ -6,7 +6,7 @@ endif()
 string(TOUPPER ${CMAKE_BUILD_TYPE} _build_type)
 
 # List of host tools
-list(APPEND host_tools_list bin2c hpp widl gendib cabman cdmake fatten mkhive obj2bin spec2def geninc mkshelllink utf16le xml2sdb)
+list(APPEND host_tools_list bin2c hpp widl gendib cabman cdmake fatten mkhive mkisofs obj2bin spec2def geninc mkshelllink utf16le xml2sdb)
 if(NOT MSVC)
     list(APPEND host_tools_list rsym)
 endif()
index 8b0121c..b8db360 100644 (file)
@@ -30,6 +30,7 @@ add_subdirectory(hhpcomp)
 add_subdirectory(hpp)
 add_subdirectory(kbdtool)
 add_subdirectory(mkhive)
+add_subdirectory(mkisofs)
 add_subdirectory(unicode)
 add_subdirectory(widl)
 add_subdirectory(wpp)
diff --git a/reactos/sdk/tools/mkisofs/CMakeLists.txt b/reactos/sdk/tools/mkisofs/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5b0db18
--- /dev/null
@@ -0,0 +1,87 @@
+
+add_definitions(
+    -DINS_BASE="\\".\\""
+    -DSCHILY_BUILD
+    -DSORTING)
+
+include_directories(
+    schilytools/include
+    reactos
+    ${REACTOS_BINARY_DIR}/sdk/include)
+
+# libschily and libsiconv are licensed under CDDL whereas mkisofs is licensed under GPL.
+# As such, we cannot mix the library sources with mkisofs sources and have to build them seperately.
+# Later on, they may still be linked together though.
+#
+# Reference: http://opensource.stackexchange.com/questions/2094
+
+add_library(libschily
+    schilytools/libschily/stdio/cvmod.c
+    schilytools/libschily/stdio/dat.c
+    schilytools/libschily/stdio/fcons.c
+    schilytools/libschily/stdio/ffileread.c
+    schilytools/libschily/stdio/fgetline.c
+    schilytools/libschily/stdio/fileopen.c
+    schilytools/libschily/stdio/filewrite.c
+    schilytools/libschily/stdio/flag.c
+    schilytools/libschily/stdio/niwrite.c
+    schilytools/libschily/astoll.c
+    schilytools/libschily/checkerr.c
+    schilytools/libschily/comerr.c
+    schilytools/libschily/dirent.c
+    schilytools/libschily/eaccess.c
+    schilytools/libschily/error.c
+    schilytools/libschily/fconv.c
+    schilytools/libschily/fillbytes.c
+    schilytools/libschily/fnmatch.c
+    schilytools/libschily/format.c
+    schilytools/libschily/getargs.c
+    schilytools/libschily/geterrno.c
+    schilytools/libschily/getexecpath.c
+    schilytools/libschily/gettimeofday.c
+    schilytools/libschily/gid.c
+    schilytools/libschily/jsprintf.c
+    schilytools/libschily/jssnprintf.c
+    schilytools/libschily/match.c
+    schilytools/libschily/mem.c
+    schilytools/libschily/movebytes.c
+    schilytools/libschily/raisecond.c
+    schilytools/libschily/saveargs.c
+    schilytools/libschily/searchinpath.c
+    schilytools/libschily/seterrno.c
+    schilytools/libschily/streql.c
+    schilytools/libschily/strlcat.c
+    schilytools/libschily/strlcpy.c
+    schilytools/libschily/uid.c
+    schilytools/libschily/zerobytes.c)
+
+add_library(libsiconv
+    schilytools/libsiconv/sic_nls.c)
+target_link_libraries(libsiconv libschily)
+
+add_host_tool(mkisofs
+    schilytools/mkisofs/boot.c
+    schilytools/mkisofs/eltorito.c
+    schilytools/mkisofs/hash.c
+    schilytools/mkisofs/inode.c
+    schilytools/mkisofs/isonum.c
+    schilytools/mkisofs/joliet.c
+    schilytools/mkisofs/match.c
+    schilytools/mkisofs/mkisofs.c
+    schilytools/mkisofs/multi.c
+    schilytools/mkisofs/name.c
+    schilytools/mkisofs/rock.c
+    schilytools/mkisofs/stream.c
+    schilytools/mkisofs/tree.c
+    schilytools/mkisofs/write.c)
+target_link_libraries(mkisofs libschily libsiconv)
+
+if(MSVC)
+    # mkisofs uses K&R-style function definitions to support very old compilers.
+    # MSVC complains about the resulting foo() vs. foo(void) mismatches.
+    add_target_compile_flags(mkisofs "/wd4113")
+else()
+    # libschily implements an own printf function with support for the %r formatter.
+    # Silence compilers checking for invalid formatting sequences.
+    add_target_compile_flags(libschily "-Wno-format")
+endif()
diff --git a/reactos/sdk/tools/mkisofs/reactos/align.h b/reactos/sdk/tools/mkisofs/reactos/align.h
new file mode 100644 (file)
index 0000000..251188c
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * PROJECT:  MKISOFS for the ReactOS Build System
+ * LICENSE:  GNU GPLv2 as published by the Free Software Foundation
+ * AUTHORS:  Colin Finck <colin@reactos.org>
+ */
+
+#ifndef        __ALIGN_H
+#define        __ALIGN_H
+
+#ifdef __LP64__
+    #define ALIGN_LMASK 7
+#else
+    #define ALIGN_LMASK 3
+#endif
+
+#define        xaligned(a, s)          ((((UIntptr_t)(a)) & (s)) == 0)
+#define        x2aligned(a, b, s)      (((((UIntptr_t)(a)) | ((UIntptr_t)(b))) & (s)) == 0)
+
+#define        laligned(a)             xaligned(a, ALIGN_LMASK)
+#define        l2aligned(a, b)         x2aligned(a, b, ALIGN_LMASK)
+
+#endif
diff --git a/reactos/sdk/tools/mkisofs/reactos/avoffset.h b/reactos/sdk/tools/mkisofs/reactos/avoffset.h
new file mode 100644 (file)
index 0000000..263f671
--- /dev/null
@@ -0,0 +1,2 @@
+/* This file is intentionally left blank.
+ * libschily depends on a buildsystem-generated avoffset.h, but its content isn't relevant for mkisofs. */
diff --git a/reactos/sdk/tools/mkisofs/reactos/xconfig.h b/reactos/sdk/tools/mkisofs/reactos/xconfig.h
new file mode 100644 (file)
index 0000000..b6ce125
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * PROJECT:  MKISOFS for the ReactOS Build System
+ * LICENSE:  GNU GPLv2 as published by the Free Software Foundation
+ * AUTHORS:  Colin Finck <colin@reactos.org>
+ */
+
+/*
+ * When mkisofs is part of Schily tools, this file is generated by the Schily Build System
+ * and checks the existence of hundreds of headers and functions.
+ * For the ReactOS Build System, we provide a written version of this file with sufficient
+ * information to build mkisofs and universal among our supported build platforms.
+ */
+
+#ifndef __XCONFIG_H
+#define __XCONFIG_H
+
+/*
+ * Header Files
+ */
+#define PROTOTYPES 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_STRING_H 1
+#define STDC_HEADERS 1
+
+#ifndef WIN32
+    #define HAVE_UNISTD_H 1
+#endif
+
+#define HAVE_LIMITS_H 1
+#define HAVE_FCNTL_H 1
+
+#ifdef WIN32
+    #define HAVE_IO_H 1
+#endif
+
+#define HAVE_INTTYPES_H 1
+#define HAVE_STDINT_H 1
+
+#ifndef WIN32
+    #define HAVE_DIRENT_H 1
+    #define HAVE_SYS_TIME_H 1
+    #define TIME_WITH_SYS_TIME 1
+#endif
+
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_MATH_H 1
+#define HAVE_ERRNO_DEF 1
+
+#ifdef WIN32
+    #define HAVE_WINDOWS_H 1
+    #define WBOOL WINBOOL
+#endif
+
+#define HAVE_LOCALE_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_WCTYPE_H 1
+#define HAVE_WCHAR_H 1
+
+/*
+ * Convert to SCHILY name
+ */
+#define HAVE_STDC_HEADERS
+
+/*
+ * Library Functions
+ */
+#define HAVE_STRERROR 1
+#define HAVE_MEMCHR 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMSET 1
+
+#ifndef WIN32
+    #define HAVE_GETTIMEOFDAY 1
+#endif
+
+#define HAVE_TIME 1
+#define HAVE_VA_COPY 1
+#define HAVE_ECVT 1
+#define HAVE_FCVT 1
+#define HAVE_GCVT 1
+#define HAVE_C99_ISINF 1
+#define HAVE_C99_ISNAN 1
+
+#define HAVE_SNPRINTF 1
+#ifdef _MSC_VER
+    #define snprintf _snprintf
+#endif
+
+#define HAVE_STRCAT 1
+#define HAVE_STRNCAT 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+#define HAVE_STRCPY 1
+
+#ifdef __APPLE__
+    #define HAVE_STRLCAT 1
+    #define HAVE_STRLCPY 1
+#endif
+
+#define HAVE_STRNCPY 1
+#define HAVE_STRDUP 1
+#define HAVE_STRLEN 1
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRNCASECMP 1
+
+#ifndef WIN32
+    #define HAVE_USLEEP 1
+#endif
+
+#define HAVE_WCSCAT 1
+#define HAVE_WCSNCAT 1
+#define HAVE_WCSCMP 1
+#define HAVE_WCSNCMP 1
+#define HAVE_WCSCPY 1
+
+#ifdef __APPLE__
+    #define HAVE_WCSLCAT 1
+    #define HAVE_WCSLCPY 1
+#endif
+
+#define HAVE_WCSNCPY 1
+#define HAVE_WCSDUP 1
+#define HAVE_WCSNDUP 1
+#define HAVE_WCSLEN 1
+#define HAVE_WCSNLEN 1
+#define HAVE_WCSCHR 1
+#define HAVE_WCSRCHR 1
+#define HAVE_WCSSTR 1
+
+#ifndef WIN32
+    #define HAVE_WCWIDTH 1
+#endif
+
+#define HAVE_SETVBUF 1
+#define HAVE_ISWPRINT 1
+#define HAVE_MBSINIT 1
+#define HAVE_MBTOWC 1
+#define HAVE_WCTOMB 1
+#define HAVE_MBRTOWC 1
+#define HAVE_WCRTOMB 1
+
+#if !defined(WIN32) && !defined(__APPLE__)
+    #define HAVE_RAW_FEXECVE 1
+#endif
+
+/*
+ * Misc OS stuff
+ */
+#ifndef WIN32
+    #define HAVE__DEV_NULL 1
+#endif
+
+/*
+ * Structures
+ */
+#ifndef WIN32
+    #define HAVE_STRUCT_TIMEVAL 1
+#endif
+
+#define HAVE_STRUCT_TIMEZONE 1
+#define HAVE_STRUCT_TIMESPEC 1
+
+/*
+ * Types/Keywords
+ */
+#define HAVE_LONGLONG 1
+
+#ifndef WIN32
+    #define VA_LIST_IS_ARRAY 1
+#endif
+
+#ifdef WIN32
+    #define uid_t int
+    #define gid_t int
+    #define nlink_t unsigned long
+    
+    #ifdef _MSC_VER
+        #define mode_t int
+    #endif
+#endif
+
+#define HAVE_TYPE_INTMAX_T 1
+#define HAVE_TYPE_UINTMAX_T 1
+
+/*
+ * ReactOS additions
+ */
+#ifdef _MSC_VER
+    #define ssize_t int
+#endif
+
+/* Would need additional fprformat.c, less portable */
+#define NO_FPRFORMAT
+
+/* For a nice "mkisofs -version" :) */
+#include <reactos/buildno.h>
+#define HOST_CPU "ReactOS"
+#define HOST_VENDOR KERNEL_VERSION_BUILD_STR
+#define HOST_OS REACTOS_COMPILER_NAME "-" REACTOS_COMPILER_VERSION
+
+#endif
diff --git a/reactos/sdk/tools/mkisofs/schilytools/CDDL.Schily.txt b/reactos/sdk/tools/mkisofs/schilytools/CDDL.Schily.txt
new file mode 100644 (file)
index 0000000..08aa128
--- /dev/null
@@ -0,0 +1,376 @@
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
+
+1. Definitions.
+
+    1.1. "Contributor" means each individual or entity that creates
+         or contributes to the creation of Modifications.
+
+    1.2. "Contributor Version" means the combination of the Original
+         Software, prior Modifications used by a Contributor (if any),
+         and the Modifications made by that particular Contributor.
+
+    1.3. "Covered Software" means (a) the Original Software, or (b)
+         Modifications, or (c) the combination of files containing
+         Original Software with files containing Modifications, in
+         each case including portions thereof.
+
+    1.4. "Executable" means the Covered Software in any form other
+         than Source Code.
+
+    1.5. "Initial Developer" means the individual or entity that first
+         makes Original Software available under this License.
+
+    1.6. "Larger Work" means a work which combines Covered Software or
+         portions thereof with code not governed by the terms of this
+         License.
+
+    1.7. "License" means this document.
+
+    1.8. "Licensable" means having the right to grant, to the maximum
+         extent possible, whether at the time of the initial grant or
+         subsequently acquired, any and all of the rights conveyed
+         herein.
+
+    1.9. "Modifications" means the Source Code and Executable form of
+         any of the following:
+
+        A. Any file that results from an addition to, deletion from or
+           modification of the contents of a file containing Original
+           Software or previous Modifications;
+
+        B. Any new file that contains any part of the Original
+           Software or previous Modifications; or
+
+        C. Any new file that is contributed or otherwise made
+           available under the terms of this License.
+
+    1.10. "Original Software" means the Source Code and Executable
+          form of computer software code that is originally released
+          under this License.
+
+    1.11. "Patent Claims" means any patent claim(s), now owned or
+          hereafter acquired, including without limitation, method,
+          process, and apparatus claims, in any patent Licensable by
+          grantor.
+
+    1.12. "Source Code" means (a) the common form of computer software
+          code in which modifications are made and (b) associated
+          documentation included in or with such code.
+
+    1.13. "You" (or "Your") means an individual or a legal entity
+          exercising rights under, and complying with all of the terms
+          of, this License.  For legal entities, "You" includes any
+          entity which controls, is controlled by, or is under common
+          control with You.  For purposes of this definition,
+          "control" means (a) the power, direct or indirect, to cause
+          the direction or management of such entity, whether by
+          contract or otherwise, or (b) ownership of more than fifty
+          percent (50%) of the outstanding shares or beneficial
+          ownership of such entity.
+
+2. License Grants.
+
+    2.1. The Initial Developer Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, the Initial
+    Developer hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Initial Developer, to use,
+            reproduce, modify, display, perform, sublicense and
+            distribute the Original Software (or portions thereof),
+            with or without Modifications, and/or as part of a Larger
+            Work; and
+
+        (b) under Patent Claims infringed by the making, using or
+            selling of Original Software, to make, have made, use,
+            practice, sell, and offer for sale, and/or otherwise
+            dispose of the Original Software (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are
+            effective on the date Initial Developer first distributes
+            or otherwise makes the Original Software available to a
+            third party under the terms of this License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is
+            granted: (1) for code that You delete from the Original
+            Software, or (2) for infringements caused by: (i) the
+            modification of the Original Software, or (ii) the
+            combination of the Original Software with other software
+            or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, each
+    Contributor hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Contributor to use, reproduce,
+            modify, display, perform, sublicense and distribute the
+            Modifications created by such Contributor (or portions
+            thereof), either on an unmodified basis, with other
+            Modifications, as Covered Software and/or as part of a
+            Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or
+            selling of Modifications made by that Contributor either
+            alone and/or in combination with its Contributor Version
+            (or portions of such combination), to make, use, sell,
+            offer for sale, have made, and/or otherwise dispose of:
+            (1) Modifications made by that Contributor (or portions
+            thereof); and (2) the combination of Modifications made by
+            that Contributor with its Contributor Version (or portions
+            of such combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
+            effective on the date Contributor first distributes or
+            otherwise makes the Modifications available to a third
+            party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is
+            granted: (1) for any code that Contributor has deleted
+            from the Contributor Version; (2) for infringements caused
+            by: (i) third party modifications of Contributor Version,
+            or (ii) the combination of Modifications made by that
+            Contributor with other software (except as part of the
+            Contributor Version) or other devices; or (3) under Patent
+            Claims infringed by Covered Software in the absence of
+            Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+    3.1. Availability of Source Code.
+
+    Any Covered Software that You distribute or otherwise make
+    available in Executable form must also be made available in Source
+    Code form and that Source Code form must be distributed only under
+    the terms of this License.  You must include a copy of this
+    License with every copy of the Source Code form of the Covered
+    Software You distribute or otherwise make available.  You must
+    inform recipients of any such Covered Software in Executable form
+    as to how they can obtain such Covered Software in Source Code
+    form in a reasonable manner on or through a medium customarily
+    used for software exchange.
+
+    3.2. Modifications.
+
+    The Modifications that You create or to which You contribute are
+    governed by the terms of this License.  You represent that You
+    believe Your Modifications are Your original creation(s) and/or
+    You have sufficient rights to grant the rights conveyed by this
+    License.
+
+    3.3. Required Notices.
+
+    You must include a notice in each of Your Modifications that
+    identifies You as the Contributor of the Modification.  You may
+    not remove or alter any copyright, patent or trademark notices
+    contained within the Covered Software, or any notices of licensing
+    or any descriptive text giving attribution to any Contributor or
+    the Initial Developer.
+
+    3.4. Application of Additional Terms.
+
+    You may not offer or impose any terms on any Covered Software in
+    Source Code form that alters or restricts the applicable version
+    of this License or the recipients' rights hereunder.  You may
+    choose to offer, and to charge a fee for, warranty, support,
+    indemnity or liability obligations to one or more recipients of
+    Covered Software.  However, you may do so only on Your own behalf,
+    and not on behalf of the Initial Developer or any Contributor.
+    You must make it absolutely clear that any such warranty, support,
+    indemnity or liability obligation is offered by You alone, and You
+    hereby agree to indemnify the Initial Developer and every
+    Contributor for any liability incurred by the Initial Developer or
+    such Contributor as a result of warranty, support, indemnity or
+    liability terms You offer.
+
+    3.5. Distribution of Executable Versions.
+
+    You may distribute the Executable form of the Covered Software
+    under the terms of this License or under the terms of a license of
+    Your choice, which may contain terms different from this License,
+    provided that You are in compliance with the terms of this License
+    and that the license for the Executable form does not attempt to
+    limit or alter the recipient's rights in the Source Code form from
+    the rights set forth in this License.  If You distribute the
+    Covered Software in Executable form under a different license, You
+    must make it absolutely clear that any terms which differ from
+    this License are offered by You alone, not by the Initial
+    Developer or Contributor.  You hereby agree to indemnify the
+    Initial Developer and every Contributor for any liability incurred
+    by the Initial Developer or such Contributor as a result of any
+    such terms You offer.
+
+    3.6. Larger Works.
+
+    You may create a Larger Work by combining Covered Software with
+    other code not governed by the terms of this License and
+    distribute the Larger Work as a single product.  In such a case,
+    You must make sure the requirements of this License are fulfilled
+    for the Covered Software.
+
+4. Versions of the License.
+
+    4.1. New Versions.
+
+    Sun Microsystems, Inc. is the initial license steward and may
+    publish revised and/or new versions of this License from time to
+    time.  Each version will be given a distinguishing version number.
+    Except as provided in Section 4.3, no one other than the license
+    steward has the right to modify this License.
+
+    4.2. Effect of New Versions.
+
+    You may always continue to use, distribute or otherwise make the
+    Covered Software available under the terms of the version of the
+    License under which You originally received the Covered Software.
+    If the Initial Developer includes a notice in the Original
+    Software prohibiting it from being distributed or otherwise made
+    available under any subsequent version of the License, You must
+    distribute and make the Covered Software available under the terms
+    of the version of the License under which You originally received
+    the Covered Software.  Otherwise, You may also choose to use,
+    distribute or otherwise make the Covered Software available under
+    the terms of any subsequent version of the License published by
+    the license steward.
+
+    4.3. Modified Versions.
+
+    When You are an Initial Developer and You want to create a new
+    license for Your Original Software, You may create and use a
+    modified version of this License if You: (a) rename the license
+    and remove any references to the name of the license steward
+    (except to note that the license differs from this License); and
+    (b) otherwise make it clear that the license contains terms which
+    differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+    COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+    BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+    INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+    SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+    PURPOSE OR NON-INFRINGING.  THE ENTIRE RISK AS TO THE QUALITY AND
+    PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU.  SHOULD ANY
+    COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+    INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
+    NECESSARY SERVICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF
+    WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.  NO USE OF
+    ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+    DISCLAIMER.
+
+6. TERMINATION.
+
+    6.1. This License and the rights granted hereunder will terminate
+    automatically if You fail to comply with terms herein and fail to
+    cure such breach within 30 days of becoming aware of the breach.
+    Provisions which, by their nature, must remain in effect beyond
+    the termination of this License shall survive.
+
+    6.2. If You assert a patent infringement claim (excluding
+    declaratory judgment actions) against Initial Developer or a
+    Contributor (the Initial Developer or Contributor against whom You
+    assert such claim is referred to as "Participant") alleging that
+    the Participant Software (meaning the Contributor Version where
+    the Participant is a Contributor or the Original Software where
+    the Participant is the Initial Developer) directly or indirectly
+    infringes any patent, then any and all rights granted directly or
+    indirectly to You by such Participant, the Initial Developer (if
+    the Initial Developer is not the Participant) and all Contributors
+    under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+    notice from Participant terminate prospectively and automatically
+    at the expiration of such 60 day notice period, unless if within
+    such 60 day period You withdraw Your claim with respect to the
+    Participant Software against such Participant either unilaterally
+    or pursuant to a written agreement with Participant.
+
+    6.3. In the event of termination under Sections 6.1 or 6.2 above,
+    all end user licenses that have been validly granted by You or any
+    distributor hereunder prior to termination (excluding licenses
+    granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+    (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+    INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+    COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+    LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+    CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+    LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+    STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+    COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+    INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.  THIS LIMITATION OF
+    LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+    INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+    APPLICABLE LAW PROHIBITS SUCH LIMITATION.  SOME JURISDICTIONS DO
+    NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+    CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+    APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+    The Covered Software is a "commercial item," as that term is
+    defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+    computer software" (as that term is defined at 48
+    C.F.R. 252.227-7014(a)(1)) and "commercial computer software
+    documentation" as such terms are used in 48 C.F.R. 12.212
+    (Sept. 1995).  Consistent with 48 C.F.R. 12.212 and 48
+    C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+    U.S. Government End Users acquire Covered Software with only those
+    rights set forth herein.  This U.S. Government Rights clause is in
+    lieu of, and supersedes, any other FAR, DFAR, or other clause or
+    provision that addresses Government rights in computer software
+    under this License.
+
+9. MISCELLANEOUS.
+
+    This License represents the complete agreement concerning subject
+    matter hereof.  If any provision of this License is held to be
+    unenforceable, such provision shall be reformed only to the extent
+    necessary to make it enforceable.  This License shall be governed
+    by the law of the jurisdiction specified in a notice contained
+    within the Original Software (except to the extent applicable law,
+    if any, provides otherwise), excluding such jurisdiction's
+    conflict-of-law provisions.  Any litigation relating to this
+    License shall be subject to the jurisdiction of the courts located
+    in the jurisdiction and venue specified in a notice contained
+    within the Original Software, with the losing party responsible
+    for costs, including, without limitation, court costs and
+    reasonable attorneys' fees and expenses.  The application of the
+    United Nations Convention on Contracts for the International Sale
+    of Goods is expressly excluded.  Any law or regulation which
+    provides that the language of a contract shall be construed
+    against the drafter shall not apply to this License.  You agree
+    that You alone are responsible for compliance with the United
+    States export administration regulations (and the export control
+    laws and regulation of any other countries) when You use,
+    distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+    As between Initial Developer and the Contributors, each party is
+    responsible for claims and damages arising, directly or
+    indirectly, out of its utilization of rights under this License
+    and You agree to work with Initial Developer and Contributors to
+    distribute such responsibility on an equitable basis.  Nothing
+    herein is intended or shall be deemed to constitute any admission
+    of liability.
+
+--------------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL)
+
+For Covered Software in this distribution, this License shall
+be governed by the laws of Germany (excluding conflict-of-law
+provisions).
+
+Any litigation relating to this License shall be subject to the
+jurisdiction and the courts of Berlin Germany, with venue lying
+in Berlin Germany.
diff --git a/reactos/sdk/tools/mkisofs/schilytools/cdrecord/version.h b/reactos/sdk/tools/mkisofs/schilytools/cdrecord/version.h
new file mode 100644 (file)
index 0000000..3161c33
--- /dev/null
@@ -0,0 +1,6 @@
+/* @(#)version.h       1.92 16/01/26 Copyright 2007-2016 J. Schilling */
+
+/*
+ * The version for cdrtools programs
+ */
+#define        VERSION "3.02a06"
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/align.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/align.h
new file mode 100644 (file)
index 0000000..455d7ec
--- /dev/null
@@ -0,0 +1,173 @@
+/* @(#)align.h 1.11 13/07/23 Copyright 1995-2013 J. Schilling */
+/*
+ *     Platform dependent definitions for aligning data.
+ *
+ *     Copyright (c) 1995-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+/*
+ *     The automatically created included file defines the following macros:
+ *
+ *     saligned(a)     One parameter aligned for a "short int"
+ *     s2aligned(a, b) Both parameters aligned for a "short int"
+ *     ialigned(a)     One parameter aligned for a "int"
+ *     i2aligned(a, b) Both parameters aligned for a "int"
+ *     laligned(a)     One parameter aligned for a "long"
+ *     l2aligned(a, b) Both parameters aligned for a "long"
+ *     llaligned(a)    One parameter aligned for a "long long"
+ *     ll2aligned(a, b) Both parameters aligned for a "long long"
+ *     faligned(a)     One parameter aligned for a "float"
+ *     f2aligned(a, b) Both parameters aligned for a "float"
+ *     daligned(a)     One parameter aligned for a "double"
+ *     d2aligned(a, b) Both parameters aligned for a "double"
+ *     paligned(a)     One parameter aligned for a "pointer"
+ *     p2aligned(a, b) Both parameters aligned for a "pointe"
+ *
+ *     salign(x)       Align for a "short int"
+ *     ialign(x)       Align for a "int"
+ *     lalign(x)       Align for a "long"
+ *     llalign(x)      Align for a "long long"
+ *     falign(x)       Align for a "float"
+ *     dalign(x)       Align for a "double"
+ *     palign(x)       Align for a "pointer"
+ */
+#ifndef _SCHILY_ALIGN_H
+#define        _SCHILY_ALIGN_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+
+#ifdef SCHILY_BUILD    /* #defined by Schily makefile system */
+       /*
+        * Include $(SRCROOT)/incs/$(OARCH)/align.h via
+        * -I$(SRCROOT)/incs/$(OARCH)/
+        */
+#      include <align.h>
+#else  /* !SCHILY_BUILD */
+/*
+ * The stuff for static compilation. Include files from a previous
+ * dynamic autoconfiguration.
+ */
+#ifdef __SUNOS5_SPARC_CC32
+#include <schily/sparc-sunos5-cc/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_SPARC_CC64
+#include <schily/sparc-sunos5-cc64/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC32
+#include <schily/sparc-sunos5-gcc/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC64
+#include <schily/sparc-sunos5-gcc64/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_X86_CC32
+#include <schily/i386-sunos5-cc/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_X86_CC64
+#include <schily/i386-sunos5-cc64/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC32
+#include <schily/i386-sunos5-gcc/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC64
+#include <schily/i386-sunos5-gcc64/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+
+#ifdef __HPUX_HPPA_CC32
+#include <schily/hppa-hp-ux-cc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_CC64
+#include <schily/hppa-hp-ux-cc64/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC32
+#include <schily/hppa-hp-ux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC64
+#include <schily/hppa-hp-ux-gcc64/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __LINUX_ARMV6L_GCC32
+#include <schily/armv6l-linux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5L_GCC32
+#include <schily/armv6l-linux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5TEJL_GCC32
+#include <schily/armv5tejl-linux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_I386_GCC32
+#include <schily/i686-linux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_amd64_GCC64
+#include <schily/x86_64-linux-gcc/align.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __MSWIN_X86_CL32
+#include <schily/i686-cygwin32_nt-cl/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+
+#ifdef __CYGWIN_X86_GCC
+#include <schily/i686-cygwin32_nt-gcc/align.h>
+#define        __JS_ARCH_ALIGN_INCL
+#endif
+
+#ifndef        __JS_ARCH_ALIGN_INCL
+/*
+ * #error will not work for all compilers (e.g. sunos4)
+ * The following line will abort compilation on all compilers
+ * if none of the above is defined. And that's  what we want.
+ */
+Error unconfigured architecture
+
+#include <schily/err_arch.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#endif /* SCHILY_BUILD */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Fake in order to keep the silly hdrchk(1) quiet.
+ */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_ALIGN_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/archdefs.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/archdefs.h
new file mode 100644 (file)
index 0000000..0433328
--- /dev/null
@@ -0,0 +1,288 @@
+/* @(#)archdefs.h      1.14 13/07/23 Copyright 2006-2013 J. Schilling */
+/*
+ *     Processor, instruction set and OS architecture specific defines.
+ *     The information is fetched from compiler predefinitions only.
+ *
+ *     Copyright (c) 2006-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_ARCHDEFS_H
+#define        _SCHILY_ARCHDEFS_H
+
+/*
+ * The code in this file only depends on compiler predefined macros.
+ * For this reason, it does not need to include schily/mconfig.h
+ */
+
+#if    defined(sun) || defined(__sun) || defined(__sun__)
+#ifndef        __sun
+#define        __sun
+#endif
+#endif
+
+#if    defined(sun2)
+#ifndef        __mc68010
+#define        __mc68010
+#endif
+#endif
+
+#if    defined(mc68020) || defined(__mc68020) || defined(sun3)
+#ifndef        __mc68020
+#define        __mc68020
+#endif
+#endif
+
+#if    defined(__mc68010) || defined(__mc68020)
+#ifndef        __mc68000
+#define        __mc68000
+#endif
+#endif
+
+#if    defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
+#ifndef        __i386
+#define        __i386
+#endif
+#endif
+
+#if    defined(__amd64) || defined(__amd64__) || \
+       defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64)
+#ifndef        __amd64
+#define        __amd64
+#endif
+#endif
+
+#if    defined(__i386) || defined(__amd64)
+#ifndef        __x86
+#define        __x86
+#endif
+#endif
+
+#if    defined(sparc) || defined(__sparc) || defined(__sparc__)
+#ifndef        __sparc
+#define        __sparc
+#endif
+#endif
+
+#if    defined(__sparcv9) || defined(__sparcv9__)
+#ifndef        __sparc
+#define        __sparc
+#endif
+#ifndef        __sparcv9
+#define        __sparcv9
+#endif
+#endif
+
+#if    defined(__sparc) && defined(__arch64__)
+#ifndef        __sparcv9
+#define        __sparcv9
+#endif
+#endif
+
+#if    defined(SOL2) || defined(SOL2) || \
+       defined(S5R4) || defined(__S5R4) || defined(SVR4)
+#      ifndef  __SVR4
+#              define  __SVR4
+#      endif
+#endif
+
+#if    defined(sun2) || defined(sun3) || defined(__sun)
+#ifndef        __sun
+#define        __sun
+#endif
+#ifndef        __GNUC__
+#ifndef        __SUNPRO_C
+#ifdef __SVR4
+#define        __SUNPRO_C
+#else
+#define        __SUN_C
+#endif /* __SVR4       */
+#endif /* !__SUNPRO_C  */
+#endif /* !__GNUC__    */
+#endif /* __sun        */
+
+
+/*
+ * SunOS 4 specific defines
+ */
+#if    defined(__sun) && !defined(__SVR4)
+
+#define        __SUNOS4
+
+#if    defined(__mc68000)
+#define        __SUNOS4_MC68000
+#ifdef __GNUC__
+#define        __SUNOS4_MC68000_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#ifdef __SUN_C
+#define        __SUNOS4_MC68000_CC32
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __mc68000    */
+
+#if    defined(__sparc)
+#define        __SUNOS4_SPARC
+#ifdef __GNUC__
+#define        __SUNOS4_SPARC_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#if    defined(__SUN_C) || defined(__SUNPRO_C)
+#define        __SUNOS4_SPARC_CC32
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __sparc      */
+
+#endif /* SunOS 4 */
+
+
+/*
+ * SunOS 5 specific defines
+ */
+#if    defined(__sun) && defined(__SVR4)
+
+#define        __SUNOS5
+
+#if    defined(__sparc)
+#ifdef __GNUC__
+#ifdef __sparcv9
+#define        __SUNOS5_SPARC_GCC64
+#else
+#define        __SUNOS5_SPARC_GCC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#if    defined(__SUNPRO_C)
+#ifdef __sparcv9
+#define        __SUNOS5_SPARC_CC64
+#else
+#define        __SUNOS5_SPARC_CC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __sparc      */
+
+#if    defined(__x86)
+#ifdef __GNUC__
+#ifdef __amd64
+#define        __SUNOS5_X86_GCC64
+#else
+#define        __SUNOS5_X86_GCC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#if    defined(__SUNPRO_C)
+#ifdef __amd64
+#define        __SUNOS5_X86_CC64
+#else
+#define        __SUNOS5_X86_CC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __x86        */
+
+#endif /* SunOS 5 */
+
+/*
+ * HP-UX specific defines
+ */
+#if    defined(__hpux)
+
+#if    defined(__hppa)
+#ifdef __GNUC__
+#ifdef __LP64__                /* This may be wrong! */
+#define        __HPUX_HPPA_GCC64
+#else
+#define        __HPUX_HPPA_GCC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#if    !defined(__GNUC__)
+#ifdef __LP64__
+#define        __HPUX_HPPA_CC64
+#else
+#define        __HPUX_HPPA_CC32
+#endif
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __hppa       */
+
+#endif /* HP-UX */
+
+/*
+ * Linux specific defines
+ */
+#if    defined(__linux)
+
+#if    defined(__arm__)
+#ifdef __GNUC__
+#ifdef __ARM_ARCH_5TE__
+#define        __LINUX_ARMV5TEJL_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#ifndef        __JS_ARCH_DEFINED
+#ifdef __ARM_ARCH_6__
+#define        __LINUX_ARMV6L_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#endif
+#ifndef        __JS_ARCH_DEFINED
+#ifdef __ARM_ARCH_5__
+#define        __LINUX_ARMV5L_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#endif
+#endif /* __GNUC__     */
+#endif /* __arm__      */
+
+#if    defined(__i386__) || defined(i386)
+#ifdef __GNUC__
+#define        __LINUX_I386_GCC32
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __i386__     */
+#if    defined(__amd64__) || defined(__amd64)
+#ifdef __GNUC__
+#define        __LINUX_amd64_GCC64
+#define        __JS_ARCH_DEFINED
+#endif
+#endif /* __amd64__    */
+
+#endif /* Linux */
+
+/*
+ * MS-WIN specific defines
+ *
+ * cl defines one of:
+ *     _M_ALPHA
+ *     _M_IX86
+ *     _M_AMD64
+ *     _M_M68K
+ *     _M_PPC          PPC in general
+ *     _M_MPPC         Power Macintosh
+ *     _M_MRX000       Mips
+ *     _M_IA64         Itanium
+ */
+#if    defined(_MSC_VER) && (defined(_X86_) || defined(_M_IX86))
+#define        __MSWIN_X86_CL32
+#define        __JS_ARCH_DEFINED
+#endif
+
+#if defined(__CYGWIN32__) || defined(__CYGWIN__)
+#define        __CYGWIN_X86_GCC
+#define        __JS_ARCH_DEFINED
+#endif
+
+#endif /* _SCHILY_ARCHDEFS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/avoffset.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/avoffset.h
new file mode 100644 (file)
index 0000000..386d961
--- /dev/null
@@ -0,0 +1,164 @@
+/* @(#)avoffset.h      1.13 13/08/26 Copyright 1995-2013 J. Schilling */
+/*
+ *     Platform dependent definitions for stack scanning.
+ *
+ *     Copyright (c) 1995-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+/*
+ *     This file includes definitions for STACK_DIRECTION,
+ *     AV_OFFSET and FP_INDIR.
+ *
+ *     STACK_DIRECTION:
+ *                     +1 -> stack grows to larger addresses
+ *                     -1 -> stack "groes" to lower addresses
+ *
+ *     FP_INDIR:       the number of fp chain elements above 'main'.
+ *
+ *     AV_OFFSET:      the offset of &av[0] relative to the frame pointer
+ *                     in 'main'.
+ *
+ *     If getav0() does not work on a specific architecture
+ *     the program which generated this automaticly generated include file
+ *     may dump core. In this case, the generated include file does not include
+ *     definitions for AV_OFFSET and FP_INDIR but ends after the
+ *     STACK_DIRECTION definition.
+ *     If AV_OFFSET or FP_INDIR are missing in the file, all code
+ *     that use the definitions are automatically disabled.
+ */
+#ifndef _SCHILY_AVOFFSET_H
+#define        _SCHILY_AVOFFSET_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef SCHILY_BUILD    /* #defined by Schily makefile system */
+       /*
+        * Include $(SRCROOT)/incs/$(OARCH)/avoffset.h via
+        * -I$(SRCROOT)/incs/$(OARCH)/
+        */
+#      include <avoffset.h>
+#else  /* !SCHILY_BUILD */
+/*
+ * The stuff for static compilation. Include files from a previous
+ * dynamic autoconfiguration.
+ */
+#ifdef __SUNOS5_SPARC_CC32
+#include <schily/sparc-sunos5-cc/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_SPARC_CC64
+#include <schily/sparc-sunos5-cc64/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC32
+#include <schily/sparc-sunos5-gcc/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC64
+#include <schily/sparc-sunos5-gcc64/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_X86_CC32
+#include <schily/i386-sunos5-cc/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_X86_CC64
+#include <schily/i386-sunos5-cc64/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC32
+#include <schily/i386-sunos5-gcc/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC64
+#include <schily/i386-sunos5-gcc64/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+
+#ifdef __HPUX_HPPA_CC32
+#include <schily/hppa-hp-ux-cc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_CC64
+#include <schily/hppa-hp-ux-cc64/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC32
+#include <schily/hppa-hp-ux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC64
+#include <schily/hppa-hp-ux-gcc64/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __LINUX_ARMV6L_GCC32
+#include <schily/armv6l-linux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5L_GCC32
+#include <schily/armv6l-linux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5TEJL_GCC32
+#include <schily/armv5tejl-linux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_I386_GCC32
+#include <schily/i686-linux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_amd64_GCC64
+#include <schily/x86_64-linux-gcc/avoffset.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __MSWIN_X86_CL32
+#include <schily/i686-cygwin32_nt-cl/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+
+#ifdef __CYGWIN_X86_GCC
+#include <schily/i686-cygwin32_nt-gcc/avoffset.h>
+#define        __JS_ARCH_AVOFFSET_INCL
+#endif
+
+#ifndef        __JS_ARCH_AVOFFSET_INCL
+/*
+ * #error will not work for all compilers (e.g. sunos4)
+ * The following line will abort compilation on all compilers
+ * if none of the above is defined. And that's  what we want.
+ */
+Error unconfigured architecture
+
+#include <schily/err_arch.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#endif /* SCHILY_BUILD */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Fake in order to keep the silly hdrchk(1) quiet.
+ */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_AVOFFSET_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/btorder.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/btorder.h
new file mode 100644 (file)
index 0000000..3ece726
--- /dev/null
@@ -0,0 +1,124 @@
+/* @(#)btorder.h       1.22 12/12/03 Copyright 1996-2012 J. Schilling */
+/*
+ *     Definitions for Bit and Byte ordering
+ *
+ *     Copyright (c) 1996-2012 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+
+#ifndef        _SCHILY_BTORDER_H
+#define        _SCHILY_BTORDER_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>            /* load bit/byte-oder from xmconfig.h */
+#endif
+
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>              /* try to load isa_defs.h on Solaris */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Convert bit-order definitions from xconfig.h into our values
+ * and verify them.
+ */
+#if defined(HAVE_C_BITFIELDS)  && \
+    defined(BITFIELDS_LTOH)
+#define        _BIT_FIELDS_LTOH
+#endif
+
+#if defined(HAVE_C_BITFIELDS)  && \
+    defined(BITFIELDS_HTOL)
+#define        _BIT_FIELDS_HTOL
+#endif
+
+#if defined(HAVE_C_BITFIELDS) && \
+       !defined(BITFIELDS_HTOL)
+#define        BITFIELDS_LTOH
+#define        _BIT_FIELDS_LTOH
+#endif
+
+#if    defined(_BIT_FIELDS_LTOH) && defined(_BIT_FIELDS_HTOL)
+/*
+ * #error will not work for all compilers (e.g. sunos4)
+ * The following line will abort compilation on all compilers
+ * if none of the above is defined. And that's  what we want.
+ */
+error  Only one of _BIT_FIELDS_LTOH or _BIT_FIELDS_HTOL may be defined
+
+#include <schily/err_bit.h>    /* Avoid "unknown directive" with K&R */
+#endif
+
+
+/*
+ * Convert byte-order definitions from xconfig.h into our values
+ * and verify them.
+ * Note that we cannot use the definitions _LITTLE_ENDIAN and _BIG_ENDIAN
+ * because they are used on IRIX-6.5 with different meaning.
+ */
+#if defined(HAVE_C_BIGENDIAN) && \
+       !defined(WORDS_BIGENDIAN)
+#define        WORDS_LITTLEENDIAN
+/* #define     _LITTLE_ENDIAN */
+#endif
+
+#if defined(HAVE_C_BIGENDIAN)  && \
+    defined(WORDS_BIGENDIAN)
+#undef WORDS_LITTLEENDIAN
+/* #define     _BIG_ENDIAN */
+#endif
+
+#if    defined(_BIT_FIELDS_LTOH) || defined(_BIT_FIELDS_HTOL)
+/*
+ * Bitorder is already known.
+ */
+#else
+/*
+ * Bitorder not yet known.
+ */
+#      if defined(sun3) || defined(mc68000) || \
+           defined(sun4) || defined(__sparc) || defined(sparc) || \
+           defined(__hppa) || defined(_ARCH_PPC) || defined(_IBMR2)
+#              define _BIT_FIELDS_HTOL
+#      endif
+
+#      if defined(__sgi) && defined(__mips)
+#              define _BIT_FIELDS_HTOL
+#      endif
+
+#      if defined(__i386__) || defined(__i386) || defined(i386) || \
+           defined(__alpha__) || defined(__alpha) || defined(alpha) || \
+           defined(__arm__) || defined(__arm) || defined(arm)
+#              define _BIT_FIELDS_LTOH
+#      endif
+
+#      if defined(__ppc__) || defined(ppc) || defined(__ppc) || \
+           defined(__PPC) || defined(powerpc) || defined(__powerpc__)
+
+#              if      defined(__BIG_ENDIAN__)
+#                      define _BIT_FIELDS_HTOL
+#              else
+#                      define _BIT_FIELDS_LTOH
+#              endif
+#      endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_BTORDER_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/ccomdefs.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/ccomdefs.h
new file mode 100644 (file)
index 0000000..0ada8a2
--- /dev/null
@@ -0,0 +1,90 @@
+/* @(#)ccomdefs.h      1.12 11/07/21 Copyright 2000-2011 J. Schilling */
+/*
+ *     Various compiler dependant macros.
+ *
+ *     Copyright (c) 2000-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_CCOMDEFS_H
+#define        _SCHILY_CCOMDEFS_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Compiler-dependent macros to declare that functions take printf-like
+ * or scanf-like arguments. They are defined to nothing for versions of gcc
+ * that are not known to support the features properly (old versions of gcc-2
+ * didn't permit keeping the keywords out of the application namespace).
+ */
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || \
+       defined(NO_PRINTFLIKE)
+
+#define        __printflike__(fmtarg, firstvararg)
+#define        __printf0like__(fmtarg, firstvararg)
+#define        __scanflike__(fmtarg, firstvararg)
+
+#else /* We found GCC that supports __attribute__ */
+
+#define        __printflike__(fmtarg, firstvararg) \
+               __attribute__((__format__(__printf__, fmtarg, firstvararg)))
+#define        __printf0like__(fmtarg, firstvararg) \
+               __attribute__((__format__(__printf0__, fmtarg, firstvararg)))
+
+/*
+ * FreeBSD GCC implements printf0 that allows the format string to
+ * be a NULL pointer.
+ */
+#if    __FreeBSD_cc_version < 300001
+#undef __printf0like__
+#define        __printf0like__ __printflike__
+#endif
+
+#define        __scanflike__(fmtarg, firstvararg) \
+               __attribute__((__format__(__scanf__, fmtarg, firstvararg)))
+
+#endif /* GNUC */
+
+#if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 2
+/* GCC-3.3 or more */
+
+/* CSTYLED */
+#define        UConst  __attribute__ ((__used__)) const
+
+#else  /* less than GNUC 3.3 */
+
+#define        UConst  const
+
+#endif /* less than GNUC 3.3 */
+
+#ifdef __PCC__
+/*
+ * Hack until pcc supports __attribute__ ((__used__))
+ */
+#ifdef UConst
+#undef UConst
+#define        UConst  const
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_CCOMDEFS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/checkerr.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/checkerr.h
new file mode 100644 (file)
index 0000000..e520904
--- /dev/null
@@ -0,0 +1,95 @@
+/* @(#)checkerr.h      1.14 12/11/13 Copyright 2003-2012 J. Schilling */
+/*
+ *     Generic error control for programs that do file i/o.
+ *     The error control is usually used by archiving programs.
+ *
+ *     The current version does not provide a stable interface.
+ *     It does not support multi-threaded programs and it may call
+ *     comerr() from the parser. If you use the code before there is
+ *     an official stable and "library-compliant" interface, be careful
+ *     and watch for changes.
+ *
+ *     Copyright (c) 2003-2012 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_CHECKERR_H
+#define        _SCHILY_CHECKERR_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_STANDARD_H
+#include <schily/standard.h>
+#endif
+#ifndef        _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Error conditions handled by error control.
+ */
+#define        E_STAT          0x0001          /* Could not stat(2) file          */
+#define        E_GETACL        0x0002          /* Could not retrieve ACL info     */
+#define        E_OPEN          0x0004          /* Could not open file             */
+#define        E_READ          0x0008          /* Could not read file             */
+#define        E_WRITE         0x0010          /* Could not write file            */
+#define        E_GROW          0x0020          /* File did grow during backup     */
+#define        E_SHRINK        0x0040          /* File did shrink during backup   */
+#define        E_MISSLINK      0x0080          /* Missing hard link(s) for file   */
+#define        E_NAMETOOLONG   0x0100          /* File name too long for archive  */
+#define        E_FILETOOBIG    0x0200          /* File too big for archive        */
+#define        E_SPECIALFILE   0x0400          /* Improper file type for archive  */
+#define        E_READLINK      0x0800          /* Could not read symbolic link    */
+#define        E_GETXATTR      0x1000          /* Could not get xattr             */
+#define        E_CHDIR         0x2000          /* Could not chdir()               */
+
+/*
+ * Currently unused: 0x4000 .. 0x8000
+ */
+
+#define        E_SETTIME       0x10000         /* Could not set file times        */
+#define        E_SETMODE       0x20000         /* Could not set access modes      */
+#define        E_SECURITY      0x40000         /* Skipped for security reasons    */
+#define        E_LSECURITY     0x80000         /* Link skipped for security       */
+#define        E_SAMEFILE      0x100000        /* Skipped from/to identical       */
+#define        E_BADACL        0x200000        /* ACL string conversion error     */
+#define        E_SETACL        0x400000        /* Could not set ACL for file      */
+#define        E_SETXATTR      0x800000        /* Could not set xattr             */
+
+/*
+ * Currently unused: 0x1000000 .. 0x8000000
+ */
+
+#define        E_DIFF          0x10000000      /* Diffs encountered               */
+#define        E_WARN          0x20000000      /* Print this error but do exit(0) */
+#define        E_ABORT         0x40000000      /* Abort on this error             */
+#define        E_EXT           0x80000000      /* Extended (TBD later)            */
+
+#define        E_ALL           (~(UInt32_t)(E_DIFF|E_ABORT))
+
+extern int     errconfig       __PR((char *name));
+extern BOOL    errhidden       __PR((int etype, const char *fname));
+extern BOOL    errwarnonly     __PR((int etype, const char *fname));
+extern BOOL    errabort        __PR((int etype, const char *fname,
+                                       BOOL doexit));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_CHECKERR_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/ctype.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/ctype.h
new file mode 100644 (file)
index 0000000..8a47797
--- /dev/null
@@ -0,0 +1,40 @@
+/* @(#)ctype.h 1.2 16/06/19 Copyright 2009-2016 J. Schilling */
+/*
+ *     Ctype abstraction
+ *
+ *     Copyright (c) 2009-2016 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_CTYPE_H
+#define        _SCHILY_CTYPE_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+#ifdef HAVE_CTYPE_H
+#ifndef        _INCL_CTYPE_H
+#include <ctype.h>
+#define        _INCL_CTYPE_H
+#endif
+#else
+
+#endif /* ! HAVE_CTYPE_H */
+
+#endif /* _SCHILY_CTYPE_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/device.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/device.h
new file mode 100644 (file)
index 0000000..8e629d2
--- /dev/null
@@ -0,0 +1,153 @@
+/* @(#)device.h        1.19 09/11/16 Copyright 1995-2007 J. Schilling */
+/*
+ *     Generic header for users of major(), minor() and makedev()
+ *
+ *     Copyright (c) 1995-2007 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_DEVICE_H
+#define        _SCHILY_DEVICE_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * On generic SVR4, major is a function (defined in sys/mkdev.h).
+ * On Solaris it is defined ...
+ * As we cannot just test if major is #define'd, we have to
+ * define _FOUND_MAJOR_ instead.
+ *
+ * WARNING: Do never include <sys/sysmacros.h> in SVR4, it contains
+ * an old definition for major()/minor() defining 8 minorbits.
+ * Use <sys/mkdev.h> instead.
+ */
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+/*
+ * Some systems define major in <sys/types.h>.
+ * We are ready...
+ */
+#ifdef major
+#      define _FOUND_MAJOR_
+#endif
+
+#ifdef MAJOR_IN_MKDEV
+#      ifndef  _INCL_SYS_MKDEV_H
+#      include <sys/mkdev.h>
+#      define  _INCL_SYS_MKDEV_H
+#      endif
+       /*
+        * Interix doesn't use makedev(); it uses mkdev()
+        */
+#      if !defined(makedev) && defined(mkdev)
+#              define makedev(a, b)    mkdev((a), (b))
+#      endif
+#      define _FOUND_MAJOR_
+#endif
+
+#ifndef _FOUND_MAJOR_
+#      ifdef MAJOR_IN_SYSMACROS
+#              ifndef  _INCL_SYS_SYSMACROS_H
+#              include <sys/sysmacros.h>
+#              define  _INCL_SYS_SYSMACROS_H
+#              endif
+#              define _FOUND_MAJOR_
+#      endif
+#endif
+
+/*
+ * If we are on HP/UX before HP/UX 8,
+ * major/minor are not in <sys/sysmacros.h>.
+ */
+#ifndef _FOUND_MAJOR_
+#      if defined(hpux) || defined(__hpux__) || defined(__hpux)
+#              ifndef  _INCL_SYS_MKOD_H
+#              include <sys/mknod.h>
+#              define  _INCL_SYS_MKOD_H
+#              endif
+#              define _FOUND_MAJOR_
+#      endif
+#endif
+
+#ifndef        _FOUND_MAJOR_
+#      ifdef VMS
+#              define major(dev)               (((((long)dev) >> 8) & 0xFF))
+#              define minor(dev)               ((((long)dev) & 0xFF))
+#              define makedev(majo, mino)      (((majo) << 8) | (mino))
+#              define _FOUND_MAJOR_
+#      endif /* VMS */
+#endif /* _FOUND_MAJOR_ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * For all other systems define major()/minor() here.
+ * XXX Check if this definition will be usefull for ms dos too.
+ */
+#ifndef _FOUND_MAJOR_
+#      define major(dev)               (((dev) >> 8) & 0xFF)
+#      define minor(dev)               ((dev) & 0xFF)
+#      define makedev(majo, mino)      (((majo) << 8) | (mino))
+#endif
+
+/*
+ * Don't pollute namespace...
+ */
+#undef _FOUND_MAJOR_
+
+#ifdef __XDEV__
+/*
+ * The following defines are currently only needed for 'star'.
+ * We make it conditional code to avoid to pollute the namespace.
+ */
+#define        XDEV_T  unsigned long
+
+extern int     minorbits;
+extern XDEV_T  minormask;
+extern XDEV_T  _dev_mask[];
+
+#define        dev_major(dev)                  (((XDEV_T)(dev)) >> minorbits)
+#define        _dev_major(mbits, dev)          (((XDEV_T)(dev)) >> (mbits))
+
+#define        dev_minor(dev)                  (((XDEV_T)(dev)) & minormask)
+#define        _dev_minor(mbits, dev)          (((XDEV_T)(dev)) & _dev_mask[(mbits)])
+
+
+#define        dev_make(majo, mino)            ((((XDEV_T)(majo)) << minorbits) | \
+                                                       ((XDEV_T)(mino)))
+#define        _dev_make(mbits, majo, mino)    ((((XDEV_T)(majo)) << (mbits) | \
+                                                       ((XDEV_T)(mino)))
+
+extern void    dev_init        __PR((BOOL debug));
+#ifndef        dev_major
+extern XDEV_T  dev_major       __PR((XDEV_T dev));
+extern XDEV_T  _dev_major      __PR((int mbits, XDEV_T dev));
+extern XDEV_T  dev_minor       __PR((XDEV_T dev));
+extern XDEV_T  _dev_minor      __PR((int mbits, XDEV_T dev));
+extern XDEV_T  dev_make        __PR((XDEV_T majo, XDEV_T mino));
+extern XDEV_T  _dev_make       __PR((int mbits, XDEV_T majo, XDEV_T mino));
+#endif
+
+#endif /* __XDEV__ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_DEVICE_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/dirent.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/dirent.h
new file mode 100644 (file)
index 0000000..f933b7c
--- /dev/null
@@ -0,0 +1,225 @@
+/* @(#)dirent.h        1.29 11/08/04 Copyright 1987, 1998, 2000-2011 J. Schilling */
+/*
+ *     Copyright (c) 1987, 1998, 2000-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_DIRENT_H
+#define        _SCHILY_DIRENT_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef JOS
+#      ifdef   HAVE_SYS_STYPES_H
+#              ifndef  _INCL_SYS_STYPES_H
+#              include <sys/stypes.h>
+#              define  _INCL_SYS_STYPES_H
+#              endif
+#      endif
+#      ifdef   HAVE_SYS_FILEDESC_H
+#              ifndef  _INCL_SYS_FILEDESC_H
+#              include <sys/filedesc.h>
+#              define  _INCL_SYS_FILEDESC_H
+#              endif
+#      endif
+#      define  NEED_READDIR
+#      define  dirent                  _direct
+#      define  DIR_NAMELEN(dirent)     strlen((dirent)->d_name)
+#      define  DIRSIZE 30
+#      define  FOUND_DIRSIZE
+       typedef struct _dirent {
+               char    name[DIRSIZE];
+               short   ino;
+       } dirent;
+
+#else  /* !JOS */
+
+#      ifndef  _SCHILY_TYPES_H
+#              include <schily/types.h>
+#      endif
+#      ifndef  _SCHILY_STAT_H
+#              include <schily/stat.h>
+#      endif
+#      ifndef  _SCHILY_LIMITS_H
+#              include <schily/limits.h>
+#      endif
+#      ifndef  _SCHILY_PARAM_H
+#              include <schily/param.h>
+#      endif
+#      ifndef  _SCHILY_STDLIB_H
+#      include <schily/stdlib.h>       /* MSVC: get _MAX_DIR */
+#      endif
+
+#      ifdef   HAVE_DIRENT_H           /* This a POSIX compliant system */
+#              ifndef  _INCL_DIRENT_H
+#              include <dirent.h>
+#              define  _INCL_DIRENT_H
+#              endif
+#              define  DIR_NAMELEN(dirent)     strlen((dirent)->d_name)
+#              define  _FOUND_DIR_
+#      else                            /* This is a Pre POSIX system    */
+
+#      define  dirent  direct
+#      define  DIR_NAMELEN(dirent)     (dirent)->d_namlen
+
+#      if      defined(HAVE_SYS_DIR_H)
+#              ifndef  _INCL_SYS_DIR_H
+#              include <sys/dir.h>
+#              define  _INCL_SYS_DIR_H
+#              endif
+#              define  _FOUND_DIR_
+#      endif
+
+#      if      defined(HAVE_NDIR_H) && !defined(_FOUND_DIR_)
+#              ifndef  _INCL_NDIR_H
+#              include <ndir.h>
+#              define  _INCL_NDIR_H
+#              endif
+#              define  _FOUND_DIR_
+#      endif
+
+#      if      defined(HAVE_SYS_NDIR_H) && !defined(_FOUND_DIR_)
+#              ifndef  _INCL_SYS_NDIR_H
+#              include <sys/ndir.h>
+#              define  _INCL_SYS_NDIR_H
+#              endif
+#              define  _FOUND_DIR_
+#      endif
+#      endif   /* HAVE_DIRENT_H */
+
+#      if      defined(_FOUND_DIR_)
+/*
+ * Don't use defaults here to allow recognition of problems.
+ */
+#      if !defined(FOUND_DIRSIZE) && defined(MAXNAMELEN)
+#              define  DIRSIZE         MAXNAMELEN      /* From sys/param.h */
+#              define  FOUND_DIRSIZE
+#      endif
+
+#      if !defined(FOUND_DIRSIZE) && defined(MAXNAMLEN)
+#              define  DIRSIZE         MAXNAMLEN       /* From dirent.h    */
+#              define  FOUND_DIRSIZE
+#      endif
+
+#      ifdef   __never__
+       /*
+        * DIRSIZ(dp) is a parameterized macro, we cannot use it here.
+        */
+#      if !defined(FOUND_DIRSIZE) && defined(DIRSIZ)
+#              define  DIRSIZE         DIRSIZ          /* From sys/dir.h   */
+#              define  FOUND_DIRSIZE
+#      endif
+#      endif   /* __never__ */
+
+#      if !defined(FOUND_DIRSIZE) && defined(NAME_MAX)
+#              define  DIRSIZE         NAME_MAX        /* From limits.h    */
+#              define  FOUND_DIRSIZE
+#      endif
+
+#      else    /* !_FOUND_DIR_ */
+
+#      if !defined(FOUND_DIRSIZE) && defined(_MAX_DIR)
+#      if      defined(__MINGW32__) || defined(_MSC_VER)
+#              define  DIRSIZE         _MAX_DIR        /* From stdlib.h    */
+#              define  FOUND_DIRSIZE
+#              define  NEED_READDIR
+#              undef   dirent
+#              define  dirent                  _direct
+#              undef   DIR_NAMELEN
+#              define  DIR_NAMELEN(dirent)     strlen((dirent)->d_name)
+#      endif
+#      endif
+
+#              ifndef  NEED_READDIR
+#              define  NEED_DIRENT
+#              define  NEED_READDIR
+#              undef   dirent
+#              define  dirent                  _direct
+#              undef   DIR_NAMELEN
+#              define  DIR_NAMELEN(dirent)     strlen((dirent)->d_name)
+#              endif   /* !NEED_READDIR */
+
+#      endif   /* _FOUND_DIR_ */
+
+
+#ifdef NEED_DIRENT
+
+#ifndef        FOUND_DIRSIZE
+#define        DIRSIZE         14      /* The old UNIX standard value */
+#define        FOUND_DIRSIZE
+#endif
+
+typedef struct _dirent {
+       short   ino;
+       char    name[DIRSIZE];
+} dirent;
+
+#endif /* NEED_DIRENT */
+
+#endif /* !JOS */
+
+#ifdef NEED_READDIR
+
+#ifndef _SCHILY_STDIO_H
+#include <schily/stdio.h>
+#endif
+#if    defined(__MINGW32__) || defined(_MSC_VER)
+#ifndef        _SCHILY_IO_H
+#include <schily/io.h>         /* for _findfirst() */
+#endif
+#ifndef _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+#endif
+
+       struct _direct {
+               unsigned long   d_ino;
+               unsigned short  d_reclen;
+               unsigned short  d_namlen;
+               char            d_name[DIRSIZE +1];
+       };
+#define        HAVE_DIRENT_D_INO
+
+       typedef struct __dirdesc {
+               FILE            *dd_fd;
+
+#if    defined(__MINGW32__) || defined(_MSC_VER)
+               struct _direct  dd_dir;         /* dirent for this dir  */
+               struct _finddata_t dd_data;     /* _findnext() results  */
+               intptr_t        dd_handle;      /* _findnext() handle   */
+               int             dd_state;       /* Current Dir state    */
+               char            dd_dirname[1];  /* Dir to open          */
+#endif
+       } DIR;
+
+extern DIR             *opendir __PR((const char *));
+extern int             closedir __PR((DIR *));
+extern struct dirent   *readdir __PR((DIR *));
+
+#endif /* NEED_READDIR */
+
+#if    !defined(HAVE_DIRFD) && defined(HAVE_DIR_DD_FD)
+#      define  dirfd(dirp)     ((dirp)->dd_fd)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_DIRENT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/dlfcn.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/dlfcn.h
new file mode 100644 (file)
index 0000000..e2b328b
--- /dev/null
@@ -0,0 +1,110 @@
+/* @(#)dlfcn.h 1.4 15/07/13 Copyright 2015 J. Schilling */
+/*
+ *     Abstraction from dlfcn.h
+ *
+ *     Copyright (c) 2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_DLFCN_H
+#define        _SCHILY_DLFCN_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_DLFCN_H
+#ifndef _INCL_DLFCN_H
+#include <dlfcn.h>                     /* POSIX */
+#define        _INCL_DLFCN_H
+#define        FOUND_DLFCN_H
+#endif
+#endif
+
+#ifdef HAVE_DL_H
+#ifndef        FOUND_DLFCN_H
+#ifndef _INCL_DL_H
+#include <dl.h>                                /* HP-UX */
+#define        _INCL_DL_H
+#define        FOUND_DLFCN_H
+#endif
+#endif
+#endif
+
+#if defined(HAVE_DLOPEN) && defined(HAVE_DLCLOSE)              /* POSIX */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
+#if !defined(HAVE_LOADABLE_LIBS) && defined(HAVE_SHL_LOAD)     /* HP-UX */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
+#if !defined(HAVE_LOADABLE_LIBS) && defined(HAVE_LOADLIBRARY)  /* Win-DOS */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
+/*
+ * dlopen() modes
+ */
+#ifndef        RTLD_LAZY                       /* The only mode in SunOS-4.0 */
+#define        RTLD_LAZY       0x00001
+#define        RTLD_NOW        0x00002
+#define        RTLD_GLOBAL     0x00100
+#define        RTLD_LOCAL      0x00000
+#endif
+
+#ifdef __never_
+/*
+ * dlsym() speudo handles
+ * These handles are not valid on SunOS-4.0
+ */
+#ifndef        RTLD_NEXT
+#define        RTLD_NEXT               (void *)-1
+#define        RTLD_DEFAULT            (void *)-2
+#define        RTLD_SELF               (void *)-3
+#endif
+#endif
+
+/*
+ * dlsym() speudo handle for SunOS-4.0
+ */
+#if    defined(HAVE_DLSYM) && !defined(RTLD_SELF)
+#define        RTLD_SELF               (void *)0
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef        HAVE_DLOPEN
+extern void    *dlopen __PR((const char *__pathname, int mode));
+#endif
+#ifndef        HAVE_DLCLOSE
+extern int     dlclose __PR((void *__handle));
+#endif
+#ifndef        HAVE_DLSYM
+extern void    *dlsym  __PR((void  *__handle, const char *name));
+#endif
+#ifndef        HAVE_DLERROR
+extern const char *dlerror __PR((void));
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+#endif /* _SCHILY_DLFCN_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/errno.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/errno.h
new file mode 100644 (file)
index 0000000..9dad372
--- /dev/null
@@ -0,0 +1,62 @@
+/* @(#)errno.h 1.7 10/08/24 Copyright 2006-2010 J. Schilling */
+/*
+ *     Error number related definitions
+ *
+ *     Copyright (c) 2006-2010 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_ERRNO_H
+#define        _SCHILY_ERRNO_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef JOS
+#include <error.h>
+
+#define        ENOEXEC         EBADHEADER
+#define        EACCES          EACCESS
+#define        ENOENT          ENOFILE
+#define        EEXIST          EEXISTS
+#else
+#include <errno.h>
+
+#define        EMISSDIR        ENOENT
+#define        ENDOFFILE       EFBIG
+#endif
+
+#ifndef        HAVE_ERRNO_DEF
+extern int     errno;
+#endif
+
+#ifndef        HAVE_STRERROR
+extern char    *sys_errlist[];
+extern int     sys_nerr;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef        seterrno
+extern int     seterrno __PR((int));
+#endif
+extern int     geterrno __PR((void));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_ERRNO_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/fcntl.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/fcntl.h
new file mode 100644 (file)
index 0000000..4bcc7c4
--- /dev/null
@@ -0,0 +1,134 @@
+/* @(#)fcntl.h 1.19 11/10/19 Copyright 1996-2011 J. Schilling */
+/*
+ *     Generic header for users of open(), creat() and chmod()
+ *
+ *     Copyright (c) 1996-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_FCNTL_H
+#define        _SCHILY_FCNTL_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>      /* Needed for fcntl.h                   */
+#endif
+
+#ifndef        _SCHILY_STAT_H
+#include <schily/stat.h>       /* For 3rd arg of open() and chmod()    */
+#endif
+
+#ifdef HAVE_SYS_FILE_H
+/*
+ * Historical systems with flock() only need sys/file.h
+ */
+#      ifndef  _INCL_SYS_FILE_H
+#      include <sys/file.h>
+#      define  _INCL_SYS_FILE_H
+#      endif
+#endif
+#ifdef HAVE_FCNTL_H
+#      ifndef  _INCL_FCNTL_H
+#      include <fcntl.h>
+#      define  _INCL_FCNTL_H
+#endif
+#endif
+
+/*
+ * Do not define more than O_RDONLY / O_WRONLY / O_RDWR / O_BINARY
+ * The values may differ.
+ *
+ * O_BINARY is defined here to allow all applications to compile on a non DOS
+ * environment without repeating this definition.
+ * O_SEARCH, O_DIRECTORY and NOFOLLOW are defined here to allow to compile on
+ * older platforms.
+ * open(name, O_SEARCH) is like UNOS open(name, "") (open neither for read nor
+ * for write). This allows to call fstat() and to get an fd for openat(fd, ...)
+ */
+#ifndef        O_RDONLY
+#      define  O_RDONLY        0
+#endif
+#ifndef        O_WRONLY
+#      define  O_WRONLY        1
+#endif
+#ifndef        O_RDWR
+#      define  O_RDWR          2
+#endif
+#ifndef        O_BINARY                        /* Only present on DOS or similar */
+#      define  O_BINARY        0
+#endif
+#ifndef        O_NDELAY                        /* This is undefined on BeOS :-( */
+#      define  O_NDELAY        0
+#endif
+#ifndef        O_EXEC                          /* Open for exec only (non-directory) */
+#      define  O_EXEC          O_RDONLY
+#endif
+#ifndef        O_SEARCH                        /* Open for search only. */
+#      define  O_SEARCH        O_RDONLY
+#endif
+#ifndef        O_DIRECTORY                     /* Fail if not a directory */
+#      define  O_DIRECTORY     0
+#endif
+#ifndef        O_NOFOLLOW                      /* Fail if a symlink */
+#      define  O_NOFOLLOW      0
+#endif
+
+#ifndef        O_ACCMODE
+#define        O_ACCMODE               (O_RDONLY|O_WRONLY|O_RDWR|O_EXEC|O_SEARCH)
+#endif
+
+#ifdef O_NOATIME                       /* Allow #ifdef O_NOATIME */
+#define        _O_NOATIME              O_NOATIME
+#else
+#define        _O_NOATIME              0
+#endif
+
+#ifndef        FD_CLOEXEC
+#define        FD_CLOEXEC              1       /* close on exec flag */
+#endif
+
+/*
+ * The following definitions are used for emulating the *at() functions.
+ * We use higher numbers for our definitions, to allow to add emulations
+ * for missing functions without causing a clash with system definitions.
+ */
+#ifndef        HAVE_OPENAT
+#ifndef        AT_FDCWD
+#define        AT_FDCWD                0xffd19553 /* *at() to working dir */
+#endif
+#endif
+#ifndef        HAVE_FSTATAT
+#ifndef        AT_SYMLINK_NOFOLLOW
+#define        AT_SYMLINK_NOFOLLOW     0x10000 /* emulate lstat() */
+#endif
+#endif
+#ifndef        HAVE_UNLINKAT
+#ifndef        AT_REMOVEDIR
+#define        AT_REMOVEDIR            0x20000 /* emulate rmdir() */
+#endif
+#endif
+#ifndef        HAVE_FACCESSAT
+#ifndef        AT_EACCESS
+#define        AT_EACCESS              0x40000 /* EUID access() */
+#endif
+#endif
+#ifndef        HAVE_LINKAT
+#ifndef        AT_SYMLINK_FOLLOW
+#define        AT_SYMLINK_FOLLOW       0x80000 /* follow symlinks before link() */
+#endif
+#endif
+
+#endif /* _SCHILY_FCNTL_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/float.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/float.h
new file mode 100644 (file)
index 0000000..58dc12a
--- /dev/null
@@ -0,0 +1,56 @@
+/* @(#)float.h 1.1 09/08/08 Copyright 2009 J. Schilling */
+/*
+ *     Abstraction code for float.h
+ *
+ *     Copyright (c) 2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_FLOAT_H
+#define        _SCHILY_FLOAT_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_FLOAT_H
+#ifndef        _INCL_FLOAT_H
+#define        _INCL_FLOAT_H
+#include <float.h>
+#endif
+#endif
+
+#ifdef HAVE_VALUES_H
+#ifndef        _INCL_VALUES_H
+#define        _INCL_VALUES_H
+#include <values.h>
+#endif
+
+#ifndef        FLT_MAX
+#define        FLT_MAX MAXFLOAT
+#endif
+#ifndef        FLT_MIN
+#define        FLT_MIN MINFLOAT
+#endif
+#ifndef        DBL_MAX
+#define        DBL_MAX MAXDOUBLE
+#endif
+#ifndef        DBL_MIN
+#define        DBL_MIN MINDOUBLE
+#endif
+
+#endif
+
+
+
+#endif /* _SCHILY_FLOAT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/fnmatch.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/fnmatch.h
new file mode 100644 (file)
index 0000000..8590bc6
--- /dev/null
@@ -0,0 +1,103 @@
+/* @(#)fnmatch.h       8.13 10/10/09 Copyright 2006-2010 J. Schilling from 8.1 (Berkeley) */
+
+#ifndef        _SCHILY_FNMATCH_H
+#define        _SCHILY_FNMATCH_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_FNMATCH_H
+#include <fnmatch.h>
+#else  /* !HAVE_FNMATCH_H */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int      fnmatch __PR((const char *, const char *, int));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !HAVE_FNMATCH */
+
+/*
+ * Copyright (c) 1992, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * 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.
+ *
+ *     @(#)fnmatch.h   8.13 (Berkeley) 10/09/10
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef        FNM_NOMATCH
+#define        FNM_NOMATCH     1       /* Match failed. */
+#endif
+#ifndef        FNM_ERROR
+#define        FNM_ERROR       2       /* An error occured */
+#endif
+#ifndef        FNM_NOSYS
+#define        FNM_NOSYS       3       /* Function (XPG4) not supported */
+#endif
+
+#ifndef        FNM_NOESCAPE
+#define        FNM_NOESCAPE    0x01    /* Disable backslash escaping. */
+#endif
+#ifndef        FNM_PATHNAME
+#define        FNM_PATHNAME    0x02    /* Slash must be matched by slash. */
+#endif
+#ifndef        FNM_PERIOD
+#define        FNM_PERIOD      0x04    /* Period must be matched by period. */
+#endif
+#if    !defined(FNM_IGNORECASE) && !defined(FNM_CASEFOLD)
+#define        FNM_IGNORECASE  0x10    /* Ignore case when making comparisons */
+#endif
+#if    !defined(FNM_IGNORECASE) && defined(FNM_CASEFOLD)
+#define        FNM_IGNORECASE  FNM_CASEFOLD
+#endif
+#ifndef        FNM_CASEFOLD
+#define        FNM_CASEFOLD    FNM_IGNORECASE
+#endif
+#ifndef        FNM_LEADING_DIR
+#define        FNM_LEADING_DIR 0x20    /* Ignore /<tail> after Imatch. */
+#endif
+
+extern int      js_fnmatch __PR((const char *, const char *, int));
+
+#if    !defined(HAVE_FNMATCH_IGNORECASE)
+#define        fnmatch js_fnmatch
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !_SCHILY_FNMATCH_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/getargs.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/getargs.h
new file mode 100644 (file)
index 0000000..4008708
--- /dev/null
@@ -0,0 +1,171 @@
+/* @(#)getargs.h       1.22 16/10/23 Copyright 1985-2016 J. Schilling */
+/*
+ *     Definitions for getargs()/getallargs()/getfiles()
+ *
+ *     Copyright (c) 1985-2016 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_GETARGS_H
+#define        _SCHILY_GETARGS_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Return values for get*args()/get*files()
+ *
+ * This package calls options "flags", they are returned from get*args().
+ *
+ * Note that NOTAFILE is not returned by the interface functions.
+ * NOTAFILE is however used as return code from the user's callback functions
+ * to signal that the current arg may be an option the callback function does
+ * not know and definitely is no file type argument.
+ *
+ * General rules for the return code of the interface functions
+ * get*args()/get*files():
+ *
+ *     > 0             A file type argument was found
+ *       0             All arguments have been parsed
+ *     < 0             An error occured
+ *
+ * Flag and file arg processing should be terminated after getting a return
+ * code <= 0.
+ */
+#define        FLAGDELIM         2             /* "--" stopped flag processing */
+#define        NOTAFLAG          1             /* Not a flag type argument     */
+#define        NOARGS            0             /* No more args                 */
+#define        BADFLAG         (-1)            /* Not a valid flag argument    */
+#define        BADFMT          (-2)            /* Error in format string       */
+#define        NOTAFILE        (-3)            /* Seems to be a flag type      */
+
+/*
+ * The callback functions are called with the following parameters:
+ *
+ * arg         The option argument
+ * valp                A pointer to the related value argument from a get*arg*() call
+ * pac         A pointer to the current argument counter
+ * pav         A pointer to the current argument vector
+ * opt         The option that caused the call
+ *
+ * The return value of the callback function may be:
+ *
+ * FLAGDELIM   Pretend "--" stopped flag processing
+ * FLAGPARSED  A valid flag was found, getallargs() will continue scanning
+ * ------------ the following codes will interrupt getallargs() processing:
+ * NOARGS      Pretend all arguments have been examined
+ * BADFLAG     Not a valid flag argument
+ * BADFMT      General Error
+ * NOTAFILE    Continue to check the format string for matches with option arg
+ */
+#define        FLAGPARSED        1             /* Flag was sucessfully parsed  */
+
+typedef        int     (*getargfun)    __PR((const char *__arg, void *__valp));
+typedef        int     (*getpargfun)   __PR((const char *__arg, void *__valp,
+                                               int *__pac, char *const **__pav,
+                                               const char *__opt));
+
+#define        NO_ARGFUN       (getargpfun)0
+
+struct ga_flags {
+       const char      *ga_format;     /* Comma separated list for one flag */
+       void            *ga_arg;        /* Ptr. to variable to fill for flag */
+       getpargfun      ga_funcp;       /* Ptr. for function to call (&/~)   */
+};
+
+struct ga_props {
+       UInt32_t        ga_flags;       /* Flags to define behavior     */
+       UInt32_t        ga_oflags;      /* State flags                  */
+       size_t          ga_size;        /* Size of this struct gs_props */
+};
+
+/*
+ * This may be used instead of a struct ga_props * parameter:
+ */
+#define        GA_NO_PROPS     (struct ga_props *)0    /* Default behavior     */
+#define        GA_POSIX_PROPS  (struct ga_props *)-1   /* POSIX behavior       */
+
+/*
+ * Definitions for ga_flags
+ */
+#define        GAF_DEFAULT             0x00    /* The default behavior             */
+#define        GAF_NO_PLUS             0x01    /* Options may not start with '+'   */
+#define        GAF_NO_EQUAL            0x02    /* Disallow '=' between opt and val */
+#define        GAF_NEED_DASH           0x04    /* Need dash before (-name=val),    */
+                                       /*  name=val is not allowed         */
+#define        GAF_DELIM_DASHDASH      0x08    /* "--" stops even get?allargs()    */
+#define        GAF_POSIX               0x1000  /* Will be expanded as shown below  */
+
+/*
+ * POSIX does not allow options in the form "+option", "-option=value" or
+ * "option=value". get*files() needs to know what may be a valid option.
+ *
+ * If ga_flags == GAF_POSIX, ga_flags is replaced with the value
+ * of the current definition for GAF_POSIX_DEFAULT.
+ *
+ * GAF_NO_PLUS         do not allow options to start with a '+'
+ * GAF_NO_EQUAL                do not allow options to contain '=' between name & val
+ *
+ * Warning: future versions may need different flags for POSIX, better use the
+ * GA_POSIX_PROPS "struct" or the GAF_POSIX flag.
+ */
+#define        GAF_POSIX_DEFAULT       (GAF_NO_PLUS | GAF_NO_EQUAL)
+
+/*
+ * Keep in sync with schily.h
+ */
+extern int     getallargs __PR((int *, char * const**, const char *, ...));
+extern int     getargs __PR((int *, char * const**, const char *, ...));
+extern int     getfiles __PR((int *, char * const**, const char *));
+extern char    *getargerror __PR((int));
+
+/*
+ * The new list versions of the functions need struct ga_props and thus need
+ * getargs.h
+ */
+extern int     getlallargs __PR((int *, char * const**, struct ga_props *,
+                                               const char *, ...));
+extern int     getlargs __PR((int *, char * const**, struct ga_props *,
+                                               const char *, ...));
+extern int     getlfiles __PR((int *, char * const**, struct ga_props *,
+                                               const char *));
+extern int     _getarginit __PR((struct ga_props *, size_t, UInt32_t));
+
+#define        getarginit(p, f)        _getarginit(p, sizeof (struct ga_props), f)
+
+/*
+ * The vector versions of the functions need struct ga_flags and thus need
+ * getargs.h
+ */
+extern int     getvallargs __PR((int *, char * const**, struct ga_props *,
+                                               struct ga_flags *));
+extern int     getvargs __PR((int *, char * const**, struct ga_props *,
+                                               struct ga_flags *));
+extern int     getvfiles __PR((int *, char * const**, struct ga_props *,
+                                               struct ga_flags *));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_GETARGS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/iconv.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/iconv.h
new file mode 100644 (file)
index 0000000..d14b88a
--- /dev/null
@@ -0,0 +1,72 @@
+/* @(#)iconv.h 1.4 08/01/02 Copyright 2007 J. Schilling */
+/*
+ *     Abstraction from iconv.h
+ *
+ *     Copyright (c) 2007 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_ICONV_H
+#define        _SCHILY_ICONV_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_ICONV_H
+#ifndef        _INCL_ICONV_H
+#include <iconv.h>
+#define        _INCL_ICONV_H
+#endif
+#else
+#undef USE_ICONV
+#endif
+
+/*
+ * Libiconv on Cygwin is not autoconf-friendly.
+ * iconv.h #defined iconv to libiconv
+ * We would need a AC_CHECK_FUNC() macro that allows to specify includefiles.
+ */
+#if    defined(HAVE_LIBICONV) && defined(HAVE_LIBICONV_OPEN) && \
+       defined(HAVE_LIBICONV_CLOSE) && \
+       defined(iconv) && defined(iconv_open) && defined(iconv_close)
+#      ifndef  HAVE_ICONV
+#      define  HAVE_ICONV
+#      endif
+#      ifndef  HAVE_ICONV_OPEN
+#      define  HAVE_ICONV_OPEN
+#      endif
+#      ifndef  HAVE_ICONV_CLOSE
+#      define  HAVE_ICONV_CLOSE
+#      endif
+#endif
+
+#if    !defined(HAVE_ICONV_OPEN) || !defined(HAVE_ICONV_CLOSE)
+#      undef   HAVE_ICONV
+#endif
+
+#ifndef        HAVE_ICONV
+#undef USE_ICONV
+#endif
+
+#ifdef NO_ICONV
+#undef USE_ICONV
+#endif
+
+#ifndef        USE_ICONV
+#undef iconv_t
+#define        iconv_t         char *
+#endif
+
+
+#endif /* _SCHILY_ICONV_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/intcvt.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/intcvt.h
new file mode 100644 (file)
index 0000000..ec214ac
--- /dev/null
@@ -0,0 +1,114 @@
+/* @(#)intcvt.h        1.8 13/10/26 Copyright 1986-2013 J. Schilling */
+/*
+ *     Definitions for conversion to/from integer data types of various size.
+ *
+ *     Copyright (c) 1986-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_INTCVT_H
+#define        _SCHILY_INTCVT_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+
+#define        i_to_2_byte(a, i)       (((Uchar *)(a))[0] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[1] = (i) & 0xFF)
+
+#define        i_to_3_byte(a, i)       (((Uchar *)(a))[0] = ((i) >> 16)& 0xFF,\
+                                   ((Uchar *)(a))[1] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[2] = (i) & 0xFF)
+
+#define        i_to_4_byte(a, i)       (((Uchar *)(a))[0] = ((i) >> 24)& 0xFF,\
+                                   ((Uchar *)(a))[1] = ((i) >> 16)& 0xFF,\
+                                   ((Uchar *)(a))[2] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[3] = (i) & 0xFF)
+
+
+
+#define        a_to_byte(a)            (((Int8_t *)a)[0])
+
+#define        a_to_u_byte(a)          ((UInt8_t) \
+                               (((Uchar *)a)[0]                & 0xFF))
+
+#define        a_to_u_2_byte(a)        ((UInt16_t) \
+                               ((((Uchar *)a)[1]               & 0xFF) | \
+                                   (((Uchar *)a)[0] << 8       & 0xFF00)))
+
+#define        a_to_2_byte(a)          (int)(Int16_t)a_to_u_2_byte(a)
+
+#define        a_to_u_3_byte(a)        ((Ulong) \
+                               ((((Uchar *)a)[2]               & 0xFF) | \
+                                   (((Uchar *)a)[1] << 8       & 0xFF00) | \
+                                   (((Uchar *)a)[0] << 16      & 0xFF0000)))
+
+#define        a_to_3_byte(a)          a_to_u_3_byte(a) /* XXX signed version? */
+
+#ifdef __STDC__
+#      define  __TOP_4BYTE     0xFF000000UL
+#else
+#      define  __TOP_4BYTE     0xFF000000
+#endif
+
+#define        a_to_u_4_byte(a)        ((Ulong) \
+                               ((((Uchar*)a)[3]                & 0xFF) | \
+                                   (((Uchar*)a)[2] << 8        & 0xFF00) | \
+                                   (((Uchar*)a)[1] << 16       & 0xFF0000) | \
+                                   (((Uchar*)a)[0] << 24       & __TOP_4BYTE)))
+
+#define        a_to_4_byte(a)          (long)(Int32_t)a_to_u_4_byte(a)
+
+/*
+ * Little Endian versions of above macros
+ */
+#define        li_to_2_byte(a, i)      (((Uchar *)(a))[1] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[0] = (i) & 0xFF)
+
+#define        li_to_3_byte(a, i)      (((Uchar *)(a))[2] = ((i) >> 16)& 0xFF,\
+                                   ((Uchar *)(a))[1] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[0] = (i) & 0xFF)
+
+#define        li_to_4_byte(a, i)      (((Uchar *)(a))[3] = ((i) >> 24)& 0xFF,\
+                                   ((Uchar *)(a))[2] = ((i) >> 16)& 0xFF,\
+                                   ((Uchar *)(a))[1] = ((i) >> 8) & 0xFF,\
+                                   ((Uchar *)(a))[0] = (i) & 0xFF)
+
+
+#define        la_to_u_2_byte(a)       ((UInt16_t) \
+                               ((((Uchar*)a)[0]                & 0xFF) | \
+                                   (((Uchar*)a)[1] << 8        & 0xFF00)))
+
+#define        la_to_2_byte(a)         (int)(Int16_t)la_to_u_2_byte(a)
+
+#define        la_to_u_3_byte(a)       ((Ulong) \
+                               ((((Uchar*)a)[0]                & 0xFF) | \
+                                   (((Uchar*)a)[1] << 8        & 0xFF00) | \
+                                   (((Uchar*)a)[2] << 16       & 0xFF0000)))
+
+#define        la_to_3_byte(a)         la_to_u_3_byte(a) /* XXX signed version? */
+
+#define        la_to_u_4_byte(a)       ((Ulong) \
+                               ((((Uchar*)a)[0]                & 0xFF) | \
+                                   (((Uchar*)a)[1] << 8        & 0xFF00) | \
+                                   (((Uchar*)a)[2] << 16       & 0xFF0000) | \
+                                   (((Uchar*)a)[3] << 24       & __TOP_4BYTE)))
+
+#define        la_to_4_byte(a)         (long)(Int32_t)la_to_u_4_byte(a)
+
+#endif /* _SCHILY_INTCVT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/inttypes.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/inttypes.h
new file mode 100644 (file)
index 0000000..a73621e
--- /dev/null
@@ -0,0 +1,38 @@
+/* @(#)inttypes.h      1.35 12/01/22 Copyright 1997-2012 J. Schilling */
+/*
+ *     Abstraction from inttypes.h
+ *
+ *     Copyright (c) 1997-2012 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_INTTYPES_H
+#define        _SCHILY_INTTYPES_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * inttypes.h is based on stdint.h
+ */
+#ifndef        _SCHILY_STDINT_H
+#include <schily/stdint.h>
+#endif
+
+/*
+ * inttypes.h inaddition to stdint.h defines printf() format strings.
+ * As we have a portable printf() in libschily, we do not need these #defines.
+ */
+
+#endif /* _SCHILY_INTTYPES_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/io.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/io.h
new file mode 100644 (file)
index 0000000..61bf3c6
--- /dev/null
@@ -0,0 +1,46 @@
+/* @(#)io.h    1.1 09/07/13 Copyright 2009 J. Schilling */
+/*
+ *     DOS io.h abstraction
+ *
+ *     Copyright (c) 2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_IO_H
+#define        _SCHILY_IO_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_FCNTL_H
+#include <schily/fcntl.h>
+#endif
+
+#ifndef        NEED_O_BINARY
+#if    O_BINARY != 0
+#define        NEED_O_BINARY
+#endif
+#endif
+
+#if    defined(HAVE_IO_H) && defined(NEED_O_BINARY)
+#ifndef        _INCL_IO_H
+#include <io.h>
+#define        _INCL_IO_H
+#endif
+#else  /* ! defined(HAVE_IO_H) && defined(NEED_O_BINARY) */
+
+#define        setmode(f, m)
+
+#endif
+
+#endif /* _SCHILY_IO_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/libport.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/libport.h
new file mode 100644 (file)
index 0000000..38bac7f
--- /dev/null
@@ -0,0 +1,416 @@
+/* @(#)libport.h       1.44 15/05/09 Copyright 1995-2015 J. Schilling */
+/*
+ *     Prototypes for POSIX standard functions that may be missing on the
+ *     local platform and thus are implemented inside libschily.
+ *
+ *     Copyright (c) 1995-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+
+#ifndef _SCHILY_LIBPORT_H
+#define        _SCHILY_LIBPORT_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+#ifndef _SCHILY_UNISTD_H
+#include <schily/unistd.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
+#      ifndef  FOUND_SIZE_T
+#      define  FOUND_SIZE_T
+#      endif
+#endif
+#if    defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
+#      undef   FOUND_SIZE_T
+#endif
+
+#ifdef OPENSERVER
+/*
+ * Don't use the usleep() from libc on SCO's OPENSERVER.
+ * It will kill our processes with SIGALRM.
+ */
+/*
+ * Don't #undef HAVE_USLEEP in this file, SCO has a
+ * usleep() prototype in unistd.h
+ */
+/* #undef      HAVE_USLEEP */
+#endif
+
+#ifdef FOUND_SIZE_T
+/*
+ * We currently cannot define this here because there IRIX has a definition
+ * than violates the standard.
+ */
+#ifndef        HAVE_SNPRINTF
+/*PRINTFLIKE3*/
+extern int     snprintf __PR((char *, size_t, const char *, ...))
+                                       __printflike__(3, 4);
+#endif
+#endif
+
+#ifdef EOF             /* stdio.h has been included */
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_GETDELIM
+extern ssize_t getdelim        __PR((char **, size_t *, int, FILE *));
+#endif
+#endif
+#endif
+
+#ifndef        HAVE_GETHOSTID
+extern long            gethostid       __PR((void));
+#endif
+#ifndef        HAVE_GETPAGESIZE
+extern int             getpagesize     __PR((void));
+#endif
+#ifndef        HAVE_USLEEP
+extern int             usleep          __PR((int usec));
+#endif
+
+#ifndef        HAVE_STRCASECMP
+extern int             strcasecmp      __PR((const char *, const char *));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_STRNCASECMP
+extern         int             strncasecmp     __PR((const char *, const char *,
+                                               size_t));
+#endif
+#endif
+
+#ifndef        HAVE_STRCAT
+extern char            *strcat         __PR((char *s1, const char *s2));
+#endif
+#ifndef        HAVE_STRCHR
+extern char            *strchr         __PR((const char *s1, int c));
+#endif
+#ifndef        HAVE_STRCMP
+extern int             strcmp          __PR((const char *s1, const char *s2));
+#endif
+#ifndef        HAVE_STRCPY
+extern char            *strcpy         __PR((char *s1, const char *s2));
+#endif
+#if    !defined(HAVE_STRDUP) || defined(__SVR4)
+extern char            *strdup         __PR((const char *s));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_STRNDUP
+extern char            *strndup        __PR((const char *s, size_t len));
+#endif
+#ifndef        HAVE_STRLEN
+extern size_t          strlen          __PR((const char *s));
+#endif
+#ifndef        HAVE_STRNLEN
+extern size_t          strnlen         __PR((const char *s, size_t len));
+#endif
+#ifndef        HAVE_STRLCAT
+extern size_t          strlcat         __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRLCPY
+extern size_t          strlcpy         __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCAT
+extern char            *strncat        __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCMP
+extern int             strncmp         __PR((const char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_STRNCPY
+extern char            *strncpy        __PR((char *s1, const char *s2,
+                                                       size_t len));
+#endif
+#endif /* FOUND_SIZE_T */
+#ifndef        HAVE_STRRCHR
+extern char            *strrchr        __PR((const char *s1, int c));
+#endif
+
+#ifndef        HAVE_STRSTR
+extern char            *strstr         __PR((const char *s1, const char *s2));
+#endif
+
+#ifdef _SCHILY_WCHAR_H
+#ifndef        HAVE_WCSCAT
+extern wchar_t         *wcscat         __PR((wchar_t *s1, const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSCHR
+extern wchar_t         *wcschr         __PR((const wchar_t *s1, wchar_t c));
+#endif
+#ifndef        HAVE_WCSCMP
+extern int             wcscmp          __PR((const wchar_t *s1,
+                                                       const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSCPY
+extern wchar_t         *wcscpy         __PR((wchar_t *s1, const wchar_t *s2));
+#endif
+#ifndef        HAVE_WCSDUP
+extern wchar_t         *wcsdup         __PR((const wchar_t *s));
+#endif
+#ifdef FOUND_SIZE_T
+#ifndef        HAVE_WCSNDUP
+extern wchar_t         *wcsndup        __PR((const wchar_t *s, size_t len));
+#endif
+#ifndef        HAVE_WCSLEN
+extern size_t          wcslen          __PR((const wchar_t *s));
+#endif
+#ifndef        HAVE_WCSNLEN
+extern size_t          wcsnlen         __PR((const wchar_t *s, size_t len));
+#endif
+#ifndef        HAVE_WCSLCAT
+extern size_t          wcslcat         __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSLCPY
+extern size_t          wcslcpy         __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCAT
+extern wchar_t         *wcsncat        __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCMP
+extern int             wcsncmp         __PR((const wchar_t *s1,
+                                                       const wchar_t *s2,
+                                                       size_t len));
+#endif
+#ifndef        HAVE_WCSNCPY
+extern wchar_t         *wcsncpy        __PR((wchar_t *s1, const wchar_t *s2,
+                                                       size_t len));
+#endif
+#endif /* FOUND_SIZE_T */
+#ifndef        HAVE_WCSRCHR
+extern wchar_t         *wcsrchr        __PR((const wchar_t *s1, wchar_t c));
+#endif
+
+#ifndef        HAVE_WCSSTR
+extern wchar_t         *wcsstr         __PR((const wchar_t *s1,
+                                                       const wchar_t *s2));
+#endif
+#endif /* _SCHILY_WCHAR_H */
+
+#ifndef        HAVE_RENAME
+extern int             rename          __PR((const char *old,
+                                                       const char *new));
+#endif
+
+/*
+ * XXX Note: libgen.h / -lgen on Solaris contain eaccess()
+ */
+#ifndef        HAVE_EACCESS
+extern int             eaccess         __PR((const char *name, int mode));
+#endif
+
+/*
+ * See also libgen.h
+ */
+#ifndef        HAVE_BASENAME
+extern char            *basename       __PR((char *name));
+#endif
+#ifndef        HAVE_DIRNAME
+extern char            *dirname        __PR((char *name));
+#endif
+
+#ifndef        HAVE_TIMEGM
+#if    defined(_SCHILY_TIME_H)
+extern time_t          timegm          __PR((struct tm *));
+#endif
+#endif
+
+#ifndef        HAVE_GETUID
+extern uid_t   getuid  __PR((void));
+#endif
+#ifndef        HAVE_GETEUID
+extern uid_t   geteuid __PR((void));
+#endif
+#ifndef        HAVE_SETUID
+extern int     setuid  __PR((uid_t uid));
+#endif
+#ifndef        HAVE_SETEUID
+extern int     seteuid __PR((uid_t uid));
+#endif
+
+#ifndef        HAVE_GETGID
+extern gid_t   getgid  __PR((void));
+#endif
+#ifndef        HAVE_GETEGID
+extern gid_t   getegid __PR((void));
+#endif
+#ifndef        HAVE_SETGID
+extern int     setgid  __PR((gid_t gid));
+#endif
+#ifndef        HAVE_SETEGID
+extern int     setegid __PR((gid_t gid));
+#endif
+
+#ifndef        HAVE_GETPWNAM
+extern struct passwd *getpwnam __PR((const char *name));
+#endif
+#ifndef        HAVE_GETPWENT
+extern struct passwd *getpwent __PR((void));
+#endif
+#ifndef        HAVE_GETPWUID
+extern struct passwd *getpwuid __PR((uid_t uid));
+#endif
+#ifndef        HAVE_SETPWENT
+extern void            setpwent __PR((void));
+#endif
+#ifndef        HAVE_ENDPWENT
+extern void            endpwent __PR((void));
+#endif
+
+
+#ifndef        HAVE_GETGRNAM
+extern struct group    *getgrnam __PR((const char *name));
+#endif
+#ifndef        HAVE_GETGRENT
+extern struct group    *getgrent __PR((void));
+#endif
+#ifndef        HAVE_GETGRGID
+extern struct group    *getgrgid __PR((gid_t gid));
+#endif
+#ifndef        HAVE_SETGRENT
+extern void            setgrent __PR((void));
+#endif
+#ifndef        HAVE_ENDGRENT
+extern void            endgrent __PR((void));
+#endif
+
+#ifndef        HAVE_FCHDIR
+extern int             fchdir __PR((int fd));
+#endif
+#ifndef        HAVE_OPENAT
+extern int             openat __PR((int fd, const char *name, int oflag, ...));
+#endif
+
+
+#ifndef        HAVE_GETTIMEOFDAY
+#ifdef _SCHILY_TIME_H
+extern int             gettimeofday __PR((struct timeval *__tp, void *__tzp));
+#endif
+#endif
+
+#ifndef        HAVE_FACCESSAT
+extern int             faccessat __PR((int fd, const char *name,
+                                       int amode, int flag));
+#endif
+#ifndef        HAVE_FCHMODAT
+extern int             fchmodat __PR((int fd, const char *name,
+                                       mode_t mode, int flag));
+#endif
+#ifndef        HAVE_LCHMOD
+extern int             lchmod __PR((const char *name, mode_t mode));
+#endif
+
+#ifndef        HAVE_FCHOWNAT
+extern int             fchownat __PR((int fd, const char *name,
+                                       uid_t owner, gid_t group, int flag));
+#endif
+
+#ifndef        HAVE_FDOPENDIR
+#ifdef _SCHILY_DIRENT_H
+extern DIR             *fdopendir __PR((int fd));
+#endif
+#endif
+
+#ifdef _SCHILY_STAT_H
+#ifndef        HAVE_FSTATAT
+extern int             fstatat __PR((int fd, const char *name,
+                                       struct stat *sbuf, int flag));
+#endif
+#endif /* _SCHILY_STAT_H */
+#ifdef _SCHILY_TIME_H
+#ifndef        HAVE_FUTIMENS
+extern int             futimens __PR((int fd,
+                                       const struct timespec __times[2]));
+#endif
+#ifndef        HAVE_FUTIMESAT
+extern int             futimesat __PR((int fd, const char *name,
+                                       const struct timeval __times[2]));
+#endif
+#ifndef        HAVE_LUTIMENS
+extern int             lutimens __PR((const char *name,
+                                       const struct timespec __times[2]));
+#endif
+#endif /* _SCHILY_TIME_H */
+#ifndef        HAVE_LINKAT
+extern int             linkat __PR((int fd1, const char *name1,
+                                       int fd2, const char *name2, int flag));
+#endif
+#ifndef        HAVE_MKDIRAT
+extern int             mkdirat __PR((int fd, const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKFIFO
+extern int             mkfifo __PR((const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKFIFOAT
+extern int             mkfifoat __PR((int fd, const char *name, mode_t mode));
+#endif
+#ifndef        HAVE_MKNODAT
+extern int             mknodat __PR((int fd, const char *name,
+                                       mode_t mode, dev_t dev));
+#endif
+#ifndef        HAVE_READLINKAT
+extern ssize_t         readlinkat __PR((int fd, const char *name,
+                                       char *lbuf, size_t lbufsize));
+#endif
+#ifndef        HAVE_RENAMEAT
+extern int             renameat __PR((int oldfd, const char *old,
+                                       int newfd, const char *new));
+#endif
+#ifndef        HAVE_SYMLINKAT
+extern int             symlinkat __PR((const char *content,
+                                       int fd, const char *name));
+#endif
+#ifndef        HAVE_UNLINKAT
+extern int             unlinkat __PR((int fd, const char *name, int flag));
+#endif
+#ifdef _SCHILY_TIME_H
+#ifndef        HAVE_UTIMENS
+extern int             utimens __PR((const char *name,
+                                       const struct timespec __times[2]));
+#endif
+#ifndef        HAVE_UTIMENSAT
+extern int             utimensat __PR((int fd, const char *name,
+                                       const struct timespec __times[2],
+                                       int flag));
+#endif
+#endif /* _SCHILY_TIME_H */
+
+#ifdef __SUNOS4
+/*
+ * Define prototypes for POSIX standard functions that are missing on SunOS-4.x
+ * to make compilation smooth.
+ */
+#include <schily/sunos4_proto.h>
+
+#endif /* __SUNOS4 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_LIBPORT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/limits.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/limits.h
new file mode 100644 (file)
index 0000000..0ed3b53
--- /dev/null
@@ -0,0 +1,54 @@
+/* @(#)limits.h        1.7 11/08/13 Copyright 2011 J. Schilling */
+/*
+ *     Copyright (c) 2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_LIMITS_H
+#define        _SCHILY_LIMITS_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_LIMITS_H
+#ifndef        _INCL_LIMITS_H
+#include <limits.h>
+#define        _INCL_LIMITS_H
+#endif
+#endif
+
+#ifndef        COLL_WEIGHTS_MAX
+#define        COLL_WEIGHTS_MAX        2
+#endif
+
+#ifndef        _POSIX2_LINE_MAX
+#define        _POSIX2_LINE_MAX        2048
+#endif
+
+/*
+ * Include sys/param.h for PIPE_BUF
+ */
+#ifndef        _SCHILY_PARAM_H
+#include <schily/param.h>
+#endif
+
+#ifndef        PIPE_BUF
+#if    defined(__MINGW32__) || defined(_MSC_VER)
+#define        PIPE_BUF                5120
+#else
+#define        PIPE_BUF                512
+#endif
+#endif /* PIPE_BUF */
+
+#endif /* _SCHILY_LIMITS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/locale.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/locale.h
new file mode 100644 (file)
index 0000000..40d1f96
--- /dev/null
@@ -0,0 +1,50 @@
+/* @(#)locale.h        1.2 09/05/24 Copyright 2009 J. Schilling */
+/*
+ *     Copyright (c) 2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_LOCALE_H
+#define        _SCHILY_LOCALE_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_LOCALE_H
+#ifndef        _INCL_LOCALE_H
+#include <locale.h>            /* LC_* definitions */
+#define        _INCL_LOCALE_H
+#endif
+#ifndef        USE_LOCALE
+#define        USE_LOCALE
+#endif
+#else
+#undef USE_LOCALE
+#endif
+
+#ifndef        HAVE_SETLOCALE
+#undef USE_LOCALE
+#endif
+
+#ifdef NO_LOCALE
+#undef USE_LOCALE
+#endif
+
+#ifndef        USE_LOCALE
+#undef setlocale
+#define        setlocale(n, s)         ((void *)0)
+#endif
+
+
+#endif /* _SCHILY_LOCALE_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/math.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/math.h
new file mode 100644 (file)
index 0000000..0a7395b
--- /dev/null
@@ -0,0 +1,34 @@
+/* @(#)math.h  1.1 09/08/26 Copyright 2009 J. Schilling */
+/*
+ *     Abstraction from math.h
+ *
+ *     Copyright (c) 2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_MATH_H
+#define        _SCHILY_MATH_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#ifndef        _INCL_MATH_H
+#define        _INCL_MATH_H
+#include <math.h>
+#endif
+#endif
+
+
+#endif /* _SCHILY_MATH_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/maxpath.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/maxpath.h
new file mode 100644 (file)
index 0000000..356a875
--- /dev/null
@@ -0,0 +1,113 @@
+/* @(#)maxpath.h       1.12 10/08/27 Copyright 1985, 1995, 1998, 2001-2010 J. Schilling */
+/*
+ *     Definitions for dealing with statically limitations on pathnames
+ *
+ *     Copyright (c) 1985, 1995, 1998, 2001-2010 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_MAXPATH_H
+#define        _SCHILY_MAXPATH_H
+
+#ifndef        _SCHILY_DIRENT_H
+#include <schily/dirent.h>             /* Includes mconfig.h if needed */
+#endif
+
+#ifdef JOS
+#ifndef        _SCHILY_JOS_MAXP_H
+#      include <schily/jos_maxp.h>
+#endif
+#      ifndef  FOUND_MAXPATHNAME
+#      define  FOUND_MAXPATHNAME
+#      endif
+#      ifndef  FOUND_MAXFILENAME
+#      define  FOUND_MAXFILENAME
+#      endif
+#endif /* JOS */
+
+#if !defined(FOUND_MAXPATHNAME) && defined(MAXPATHLEN)
+#      define  MAXPATHNAME     MAXPATHLEN      /* From sys/param.h */
+#      define  FOUND_MAXPATHNAME
+#endif
+
+#if !defined(FOUND_MAXPATHNAME) && defined(PATH_MAX)
+#      define  MAXPATHNAME     PATH_MAX        /* From limits.h    */
+#      define  FOUND_MAXPATHNAME
+#endif
+
+#if !defined(FOUND_MAXPATHNAME)
+#include <schily/stdlib.h>
+#endif
+#if !defined(FOUND_MAXPATHNAME) && defined(_MAX_PATH)
+#      define  MAXPATHNAME     _MAX_PATH       /* From MS stdlib.h */
+#      define  FOUND_MAXPATHNAME
+#endif
+
+#if !defined(FOUND_MAXPATHNAME)
+#      define  MAXPATHNAME     256             /* Is there a limit? */
+#endif
+
+#ifndef        PATH_MAX
+#define        PATH_MAX        MAXPATHNAME
+#endif
+
+
+/*
+ * Don't use defaults here to allow recognition of problems.
+ */
+#if !defined(FOUND_MAXFILENAME) && defined(MAXNAMELEN)
+#      define  MAXFILENAME     MAXNAMELEN      /* From sys/param.h */
+#      define  FOUND_MAXFILENAME
+#endif
+
+#if !defined(FOUND_MAXFILENAME) && defined(MAXNAMLEN)
+#      define  MAXFILENAME     MAXNAMLEN       /* From dirent.h    */
+#      define  FOUND_MAXFILENAME
+#endif
+
+#ifdef __never__
+/*
+ * DIRSIZ(dp) is a parameterized macro, we cannot use it here.
+ */
+#if !defined(FOUND_MAXFILENAME) && defined(DIRSIZ)
+#      define  MAXFILENAME     DIRSIZ          /* From sys/dir.h   */
+#      define  FOUND_MAXFILENAME
+#endif
+#endif /* __never__ */
+
+#if !defined(FOUND_MAXFILENAME) && defined(NAME_MAX)
+#      define  MAXFILENAME     NAME_MAX        /* From limits.h    */
+#      define  FOUND_MAXFILENAME
+#endif
+
+#if !defined(FOUND_MAXFILENAME) && defined(FOUND_DIRSIZE)
+#      define  MAXFILENAME     DIRSIZE         /* From schily/dirent.h    */
+#      define  FOUND_MAXFILENAME
+#endif
+
+#if !defined(FOUND_MAXPATHNAME)
+#include <schily/stdlib.h>
+#endif
+#if !defined(FOUND_MAXFILENAME) && defined(_MAX_FNAME)
+#      define  MAXFILENAME     _MAX_FNAME      /* From MS stdlib.h */
+#      define  FOUND_MAXFILENAME
+#endif
+
+#ifndef        NAME_MAX
+#define        NAME_MAX        MAXFILENAME
+#endif
+#ifndef        MAXNAMLEN
+#define        MAXNAMLEN       MAXFILENAME
+#endif
+
+#endif /* _SCHILY_MAXPATH_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/mconfig.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/mconfig.h
new file mode 100644 (file)
index 0000000..90a9a5f
--- /dev/null
@@ -0,0 +1,559 @@
+/* @(#)mconfig.h       1.71 15/08/14 Copyright 1995-2015 J. Schilling */
+/*
+ *     definitions for machine configuration
+ *
+ *     Copyright (c) 1995-2015 J. Schilling
+ *
+ *     This file must be included before any other file.
+ *     If this file is not included before stdio.h you will not be
+ *     able to get LARGEFILE support
+ *
+ *     Use only cpp instructions.
+ *
+ *     NOTE: SING: (Schily Is Not Gnu)
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_MCONFIG_H
+#define        _SCHILY_MCONFIG_H
+
+/*
+ * Tell our users that this is a Schily SING compile environment.
+ */
+#define        IS_SCHILY
+
+/*
+ * We need to do this before we include xconfig.h
+ */
+#ifdef NO_LARGEFILES
+#undef USE_LARGEFILES
+#endif
+#ifdef NO_ACL
+#undef USE_ACL
+#endif
+
+/*
+ * Inside <schily/archdefs.h> we get architecture specific Processor defines
+ * fetched from compiler predefinitions only.
+ */
+#include <schily/archdefs.h>
+
+/*
+ * Inside <schily/xconfig.h> we decide whether to use static or dynamic
+ * autoconf stuff.
+ */
+#include <schily/xconfig.h>
+
+/*
+ * Make sure that neither HAVE_LARGEFILES nor USE_LARGEFILES is defined
+ * if the platform does not support large files.
+ */
+#ifndef        HAVE_LARGEFILES
+#undef USE_LARGEFILES
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The NetBSD people want to bother us.
+ * They removed the definition for 'unix' and are bleating for every test
+ * for #if defined(unix). So we need to check for NetBSD early.
+ */
+#ifndef        IS_UNIX
+#      if defined(__NetBSD__)
+#              define  IS_UNIX
+#      endif
+#endif
+
+#ifndef        IS_UNIX
+#      if (defined(unix) || defined(__unix) || defined(__unix__)) && \
+       !defined(__DJGPP__)
+#              define  IS_UNIX
+#      endif
+#endif
+
+#ifdef __MSDOS__
+#      define  IS_MSDOS
+#endif
+
+#if defined(tos) || defined(__tos)
+#      define  IS_TOS
+#endif
+
+#ifdef THINK_C
+#      define  IS_MAC
+#endif
+
+#if defined(sun) || defined(__sun) || defined(__sun__)
+#      define  IS_SUN
+#endif
+
+#if defined(__CYGWIN32__) || defined(__CYGWIN__)
+#      define  IS_GCC_WIN32
+#      define  IS_CYGWIN
+
+#if    defined(unix) || defined(_X86)
+#      define  IS_CYGWIN_1
+#endif
+#endif
+
+/* ------------------------------------------------------------------------- */
+/*
+ * Some magic that cannot (yet) be figured out with autoconf.
+ */
+
+#if defined(sun3) || defined(mc68000) || defined(mc68020)
+#      ifndef  HAVE_SCANSTACK
+#      define  HAVE_SCANSTACK
+#      endif
+#endif
+#ifdef sparc
+#      ifndef  HAVE_LDSTUB
+#      define  HAVE_LDSTUB
+#      endif
+#      ifndef  HAVE_SCANSTACK
+#      define  HAVE_SCANSTACK
+#      endif
+#endif
+#if    defined(__i386_) || defined(i386)
+#      ifndef  HAVE_XCHG
+#      define  HAVE_XCHG
+#      endif
+#      ifndef  HAVE_SCANSTACK
+#      define  HAVE_SCANSTACK
+#      endif
+#endif
+
+/*
+ * Use of SCANSTACK is disabled by default
+ */
+#ifndef        USE_SCANSTACK
+#      undef   HAVE_SCANSTACK
+#else
+/*
+ * But ....
+ * The tests are much better now, so always give it a chance.
+ */
+#ifndef        HAVE_SCANSTACK
+#      define  HAVE_SCANSTACK
+#endif
+#endif
+
+/*
+ * Allow to overwrite the defines in the makefiles by calling
+ *
+ *     make COPTX=-DFORCE_SCANSTACK
+ */
+#ifdef FORCE_SCANSTACK
+#      undef   NO_SCANSTACK
+#ifndef        HAVE_SCANSTACK
+#      define  HAVE_SCANSTACK
+#endif
+#ifndef        USE_SCANSTACK
+#      define  USE_SCANSTACK
+#endif
+#endif
+
+/*
+ * This is the global switch to deactivate stack scanning
+ */
+#ifdef NO_SCANSTACK
+#      ifdef   HAVE_SCANSTACK
+#      undef   HAVE_SCANSTACK
+#      endif
+#endif
+
+/*
+ * This is the global switch to deactivate using #pragma weak
+ */
+#ifdef NO_PRAGMA_WEAK
+#      ifdef   HAVE_PRAGMA_WEAK
+#      undef   HAVE_PRAGMA_WEAK
+#      endif
+#endif
+
+#ifdef NO_FORK
+#      ifdef   HAVE_FORK
+#      undef   HAVE_FORK
+#      endif
+#      ifdef   HAVE_VFORK
+#      undef   HAVE_VFORK
+#      endif
+#endif
+#ifdef NO_VFORK
+#      ifdef   HAVE_VFORK
+#      undef   HAVE_VFORK
+#      endif
+#endif
+
+#if    defined(SOL2) || defined(SOL2) || \
+       defined(S5R4) || defined(__S5R4) || defined(SVR4)
+#      ifndef  __SVR4
+#              define  __SVR4
+#      endif
+#endif
+
+#ifdef __SVR4
+#      ifndef  SVR4
+#              define  SVR4
+#      endif
+#endif
+
+/*
+ * SunOS 4.x / SunOS 5.x
+ */
+#if defined(IS_SUN)
+#      define  HAVE_GETAV0
+#endif
+
+/*
+ * AIX
+ */
+#if    defined(_IBMR2) || defined(_AIX)
+#      ifndef  IS_UNIX
+#      define  IS_UNIX         /* ??? really ??? */
+#      endif
+#endif
+
+/*
+ * QNX
+ */
+#if defined(__QNX__)
+#      ifndef  IS_UNIX
+#      define  IS_UNIX
+#      endif
+#endif
+
+/*
+ * Silicon Graphics    (must be before SVR4)
+ */
+#if defined(sgi) || defined(__sgi)
+#      define  __NOT_SVR4__    /* Not a real SVR4 implementation */
+#endif
+
+/*
+ * Data General
+ */
+#if defined(__DGUX__)
+#ifdef XXXXXXX
+#      undef   HAVE_MTGET_DSREG
+#      undef   HAVE_MTGET_RESID
+#      undef   HAVE_MTGET_FILENO
+#      undef   HAVE_MTGET_BLKNO
+#endif
+#      define  mt_type         mt_model
+#      define  mt_dsreg        mt_status1
+#      define  mt_erreg        mt_status2
+       /*
+        * DGUX hides its flock as dg_flock.
+        */
+#      define  HAVE_FLOCK
+#      define  flock   dg_flock
+       /*
+        * Use the BSD style wait on DGUX to get the resource usages of child
+        * processes.
+        */
+#      define  _BSD_WAIT_FLAVOR
+#endif
+
+/*
+ * Apple Rhapsody (This is the name for Mac OS X beta)
+ */
+#if defined(__NeXT__) && defined(__TARGET_OSNAME) && __TARGET_OSNAME == rhapsody
+#      define  HAVE_OSDEF /* prevent later definitions to overwrite current */
+#      ifndef  IS_UNIX
+#      define  IS_UNIX
+#      endif
+#endif
+
+/*
+ * NextStep
+ */
+#if defined(__NeXT__) && !defined(HAVE_OSDEF)
+#define        NO_PRINT_OVR
+#undef HAVE_USG_STDIO
+                               /*
+                                * NeXT Step 3.x uses
+                                * __flsbuf(unsigned char, FILE *)
+                                * instead of __flsbuf(int, FILE *)
+                                */
+#      ifndef  IS_UNIX
+#      define  IS_UNIX
+#      endif
+#endif
+
+/*
+ * Mac OS X
+ */
+#if defined(__APPLE__) && defined(__MACH__)
+#      ifndef  IS_UNIX
+#      define  IS_UNIX
+#      endif
+#      define  IS_MACOS_X
+#endif
+
+/*
+ * NextStep 3.x has a broken linker that does not allow us to override
+ * these functions.
+ */
+#ifndef        __OPRINTF__
+
+#ifdef NO_PRINT_OVR
+#      define  printf  Xprintf
+#      define  fprintf Xfprintf
+#      define  sprintf Xsprintf
+#endif
+
+#endif /* __OPRINTF__ */
+
+/* ------------------------------------------------------------------------- */
+
+#ifndef        _SCHILY_PROTOTYP_H
+#include <schily/prototyp.h>
+#endif
+
+/*
+ * We use HAVE_LONGLONG as generalized test on whether "long long", "__in64" or
+ * something similar exist.
+ *
+ * In case that HAVE_LONGLONG is defined here, this is an indication that
+ * "long long" works. We define HAVE_LONG_LONG to keep this knowledge.
+ */
+#ifdef HAVE_LONGLONG
+#      define  HAVE_LONG_LONG
+#endif
+
+/*
+ * Microsoft C defines _MSC_VER
+ * use __int64 instead of long long and use 0i64 for a signed long long const
+ * and 0ui64 for an unsigned long long const.
+ *
+ * #if defined(HAVE___INT64)
+ *     use __int64
+ * #elif defined(HAVE_LONGLONG)
+ *     use long long
+ * #endif
+ *
+ * Be very careful here as older MSVC versions do not implement long long but
+ * rather __int64 and once someone makes 'long long' 128 bits on a 64 bit
+ * machine, we may need to check for a MSVC __int128 type.
+ */
+#ifndef        HAVE_LONGLONG
+#      if      defined(HAVE___INT64)
+#              define  HAVE_LONGLONG
+#      endif
+#endif
+
+/*
+ * gcc 2.x generally implements the "long long" type.
+ */
+#ifdef __GNUC__
+#      if      __GNUC__ > 1
+#              ifndef  HAVE_LONGLONG
+#                      define  HAVE_LONGLONG
+#              endif
+#              ifndef  HAVE_LONG_LONG
+#                      define  HAVE_LONG_LONG
+#              endif
+#      endif
+#endif
+
+#ifdef __CHAR_UNSIGNED__       /* GNU GCC define (dynamic)     */
+#ifndef CHAR_IS_UNSIGNED
+#define        CHAR_IS_UNSIGNED        /* Sing Schily define (static)  */
+#endif
+#endif
+
+/*
+ * Convert to GNU name
+ */
+#ifdef HAVE_STDC_HEADERS
+#      ifndef  STDC_HEADERS
+#              define  STDC_HEADERS
+#      endif
+#endif
+/*
+ * Convert to SCHILY name
+ */
+#ifdef STDC_HEADERS
+#      ifndef  HAVE_STDC_HEADERS
+#              define  HAVE_STDC_HEADERS
+#      endif
+#endif
+
+#ifdef IS_UNIX
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ':'
+#      define  PATH_ENV_DELIM_STR      ":"
+#      define  far
+#      define  near
+#endif
+
+/*
+ * Win32 with Gygwin
+ */
+#ifdef IS_GCC_WIN32
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ':'
+#      define  PATH_ENV_DELIM_STR      ":"
+#      define  HAVE_DOS_DRIVELETTER
+#      define  far
+#      define  near
+#      define  NEED_O_BINARY
+#endif
+
+/*
+ * Win32 with Mingw32
+ */
+#ifdef __MINGW32__
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ';'
+#      define  PATH_ENV_DELIM_STR      ";"
+#      define  HAVE_DOS_DRIVELETTER
+#      define  far
+#      define  near
+#      define  NEED_O_BINARY
+#endif
+
+/*
+ * OS/2 EMX
+ */
+#ifdef __EMX__                         /* We don't want to call it UNIX */
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ';'
+#      define  PATH_ENV_DELIM_STR      ";"
+#      define  HAVE_DOS_DRIVELETTER
+#      define  far
+#      define  near
+#      define  NEED_O_BINARY
+#endif
+
+#ifdef __BEOS__                        /* We don't want to call it UNIX */
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ':'
+#      define  PATH_ENV_DELIM_STR      ":"
+#      define  far
+#      define  near
+#endif
+
+/*
+ * DOS with DJGPP
+ */
+#ifdef __DJGPP__                       /* We don't want to call it UNIX */
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ';'
+#      define  PATH_ENV_DELIM_STR      ";"
+#      define  HAVE_DOS_DRIVELETTER
+
+#      define  NEED_O_BINARY
+#endif
+
+/*
+ * Vanilla DOS
+ */
+#if    defined(IS_MSDOS) && !defined(__DJGPP__)
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '\\'
+#      define  PATH_DELIM_STR          "\\"
+#      define  PATH_ENV_DELIM          ';'
+#      define  PATH_ENV_DELIM_STR      ";"
+#      define  HAVE_DOS_DRIVELETTER
+
+#      define  NEED_O_BINARY
+#endif
+
+/*
+ * ATARI TOS
+ */
+#ifdef IS_TOS
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '\\'
+#      define  PATH_DELIM_STR          "\\"
+#      define  PATH_ENV_DELIM          ','
+#      define  PATH_ENV_DELIM_STR      ","
+#      define  HAVE_DOS_DRIVELETTER
+#      define  far
+#      define  near
+#endif
+
+/*
+ * Mac OS 9
+ */
+#ifdef IS_MAC
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              ':'
+#      define  PATH_DELIM_STR          ":"
+#      define  PATH_ENV_DELIM          ';'     /* ??? */
+#      define  PATH_ENV_DELIM_STR      ";"     /* ??? */
+#      define  far
+#      define  near
+#endif
+
+/*
+ * I hope this will make compilation on unknown OS easier.
+ */
+#ifndef        HAVE_PATH_DELIM                 /* Default to POSIX rules */
+#      define  HAVE_PATH_DELIM
+#      define  PATH_DELIM              '/'
+#      define  PATH_DELIM_STR          "/"
+#      define  PATH_ENV_DELIM          ':'
+#      define  PATH_ENV_DELIM_STR      ":"
+#      define  far
+#      define  near
+#endif
+
+/*
+ * Is there a solution for /dev/tty and similar?
+ */
+#ifdef HAVE__DEV_NULL
+#      define  DEV_NULL                "/dev/null"
+#else
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#      define  DEV_NULL                "NUL"
+#else
+/*
+ * What to do here?
+ */
+#endif
+#endif
+
+#ifdef DBG_MALLOC
+/*
+ * We need to include this here already in order to make sure that
+ * every program that is based on mconfig.h will include schily/dbgmalloc.h
+ * in case that we specify -DDBG_MALLOC
+ */
+#include <schily/dbgmalloc.h>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_MCONFIG_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/nlsdefs.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/nlsdefs.h
new file mode 100644 (file)
index 0000000..4202881
--- /dev/null
@@ -0,0 +1,103 @@
+/* @(#)nlsdefs.h       1.5 10/12/19 Copyright 2004-2010 J. Schilling */
+/*
+ *     Native language support
+ *
+ *     Copyright (c) 2004-2010 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_NLSDEFS_H
+#define        _SCHILY_NLSDEFS_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        NO_NLS
+#ifndef        USE_NLS
+#define        USE_NLS                 /* Make nls the default */
+#endif
+#endif
+
+#ifdef HAVE_LIBINTL_H
+#ifndef        _INCL_LIBINTL_H
+#include <libintl.h>           /* gettext() */
+#define        _INCL_LIBINTL_H
+#endif
+#else
+#undef USE_NLS
+#endif
+
+#ifndef        _SCHILY_LOCALE_H
+#include <schily/locale.h>     /* LC_* definitions */
+#endif
+#ifndef        _INCL_LOCALE_H
+#undef USE_NLS
+#endif
+
+#ifdef HAVE_LANGINFO_H
+#ifndef        _INCL_LAGINFO_H
+#include <langinfo.h>          /* YESSTR amnd similar */
+#define        _INCL_LANGINFO_H
+#endif
+#else
+#undef USE_NLS
+#endif
+
+#ifndef        HAVE_GETTEXT
+#undef USE_NLS
+#endif
+
+#ifdef NO_NLS
+#undef USE_NLS
+#endif
+
+#ifdef NO_TEXT_DOMAIN
+#undef TEXT_DOMAIN
+#endif
+
+#ifndef        USE_NLS
+#undef gettext
+#define        gettext(s)                      s
+#undef dgettext
+#define        dgettext(d, s)                  s
+#undef dcgettext
+#define        dcgettext(d, s, c)              s
+
+#undef textdomain
+#define        textdomain(a)                   ((char *)0)
+#undef bindtextdomain
+#define        bindtextdomain(d, dir)          ((char *)0)
+#undef bind_textdomain_codeset
+#define        bind_textdomain_codeset(d, c)   ((char *)0)
+#endif
+
+#ifdef lint
+/*
+ * Allow lint to check printf() format strings.
+ */
+#define        _(s)                            s
+#else  /* lint */
+
+#ifdef USE_DGETTEXT                    /* e.g. in a library */
+#define        _(s)                            dgettext(TEXT_DOMAIN, s)
+#else
+#define        _(s)                            gettext(s)
+#endif
+#endif /* lint */
+/*
+ * Allow to mark strings for xgettext(1)
+ */
+#define        __(s)                           s
+
+#endif /* _SCHILY_NLSDEFS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/param.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/param.h
new file mode 100644 (file)
index 0000000..4010e63
--- /dev/null
@@ -0,0 +1,76 @@
+/* @(#)param.h 1.7 12/01/22 Copyright 2006-2011 J. Schilling */
+/*
+ *     Abstraction from sys/param.h
+ *
+ *     Copyright (c) 2006-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_PARAM_H
+#define        _SCHILY_PARAM_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * Let us include system defined types first.
+ */
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#ifndef        _INCL_SYS_PARAM_H
+#include <sys/param.h>         /* Must be before limits.h */
+#define        _INCL_SYS_PARAM_H
+#endif
+#endif
+#ifndef        _SCHILY_LIMITS_H
+#include <schily/limits.h>     /* For _SC_CLK_TCK */
+#endif
+#ifndef        _SCHILY_UNISTD_H
+#include <schily/unistd.h>     /* For _SC_CLK_TCK */
+#endif
+
+#ifndef        NBBY
+#define        NBBY            8       /* Number of bits per byte */
+#endif
+
+#ifndef        DEV_BSIZE
+#define        DEV_BSIZE       512     /* UNIX Device Block size */
+#endif
+
+/*
+ * NODEV may be in sys/param.h keep this definition past the include.
+ */
+#ifndef        NODEV
+#define        NODEV   ((dev_t)-1L)
+#endif
+
+#ifndef        HZ
+#if    defined(_SC_CLK_TCK)
+#define        HZ      ((clock_t)sysconf(_SC_CLK_TCK))
+#else
+#define        HZ      100
+#endif
+#endif
+
+/*
+ * Do we need to define _XOPEN_SOURCE to get NZERO?
+ * On Linux, it is needed but on Linux NZERO is 20.
+ */
+#ifndef        NZERO           /* for nice(2) */
+#define        NZERO   20
+#endif
+
+#endif /* _SCHILY_PARAM_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/patmatch.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/patmatch.h
new file mode 100644 (file)
index 0000000..320f695
--- /dev/null
@@ -0,0 +1,130 @@
+/* @(#)patmatch.h      1.15 10/08/27 Copyright 1985,1993-2010 J. Schilling */
+
+#ifndef        _SCHILY_PATMATCH_H
+#define        _SCHILY_PATMATCH_H
+/*
+ *     Definitions for the pattern matching functions.
+ *
+ *     Copyright (c) 1985,1993-2010 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+/*
+ *     The pattern matching functions are based on the algorithm
+ *     presented by Martin Richards in:
+ *
+ *     "A Compact Function for Regular Expression Pattern Matching",
+ *     Software-Practice and Experience, Vol. 9, 527-534 (1979)
+ *
+ *     Several changes have been made to the original source which has been
+ *     written in BCPL:
+ *
+ *     '/'     is replaced by  '!'             (to allow UNIX filenames)
+ *     '(',')' are replaced by '{', '}'
+ *     '\''    is replaced by  '\\'            (UNIX compatible quote)
+ *
+ *     Character classes have been added to allow "[<character list>]"
+ *     to be used.
+ *     Start of line '^' and end of line '$' have been added.
+ *
+ *     Any number in the following comment is zero or more occurrencies
+ */
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ALT     '!'     /* Alternation in match i.e. this!that!the_other */
+#define        REP     '#'     /* Any number of occurrences of the following expr */
+#define        NIL     '%'     /* Empty string (exactly nothing) */
+#define        STAR    '*'     /* Any number of any character (equivalent of #?) */
+#define        ANY     '?'     /* Any one character */
+#define        QUOTE   '\\'    /* Quotes the next character */
+#define        LBRACK  '{'     /* Begin of precedence grouping */
+#define        RBRACK  '}'     /* End of precedence grouping */
+#define        LCLASS  '['     /* Begin of character set */
+#define        RCLASS  ']'     /* End of character set */
+#define        NOT     '^'     /* If first in set: invert set content */
+#define        RANGE   '-'     /* Range notation in sets */
+#define        START   '^'     /* Begin of a line */
+#define        END     '$'     /* End of a line */
+
+/*
+ * A list of case statements that may be used for a issimple() or ispattern()
+ * funtion that checks whether a string conrtains characters that need the
+ * pattern matcher.
+ *
+ * Note that this list does not contain NOT or RANGE because you need
+ * LCLASS and RCLASS in addition.
+ */
+#define        casePAT case ALT: case REP: case NIL: case STAR: case ANY:      \
+               case QUOTE: case LBRACK: case RBRACK:                   \
+               case LCLASS: case RCLASS: case START: case END:
+
+
+#define        MAXPAT  128     /* Max length of pattern for opatmatch()/opatlmatch() */
+
+extern int         patcompile  __PR((const unsigned char *__pat, int __patlen,
+                                               int *__aux));
+
+extern unsigned char *opatmatch        __PR((const unsigned char *__pat,
+                                               const int *__aux,
+                                               const  unsigned char *__str,
+                                               int __soff, int __slen,
+                                               int __alt));
+extern unsigned char *opatlmatch __PR((const unsigned char *__pat,
+                                               const int *__aux,
+                                               const  unsigned char *__str,
+                                               int __soff, int __slen,
+                                               int __alt));
+extern unsigned char *patmatch __PR((const unsigned char *__pat,
+                                               const int *__aux,
+                                               const  unsigned char *__str,
+                                               int __soff, int __slen,
+                                               int __alt, int __state[]));
+extern unsigned char *patlmatch __PR((const unsigned char *__pat,
+                                               const int *__aux,
+                                               const  unsigned char *__str,
+                                               int __soff, int __slen,
+                                               int __alt, int __state[]));
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef _SCHILY_WCHAR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int     patwcompile     __PR((const wchar_t *__pat, int __patlen,
+                                               int *__aux));
+extern wchar_t *patwmatch      __PR((const wchar_t *__pat, const int *__aux,
+                                               const  wchar_t *__str,
+                                               int __soff, int __slen,
+                                               int __alt, int __state[]));
+extern wchar_t *patwlmatch     __PR((const wchar_t *__pat, const int *__aux,
+                                               const  wchar_t *__str,
+                                               int __soff, int __slen,
+                                               int __alt, int __state[]));
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SCHILY_WCHAR_H */
+
+#endif /* _SCHILY_PATMATCH_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/prototyp.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/prototyp.h
new file mode 100644 (file)
index 0000000..77655ca
--- /dev/null
@@ -0,0 +1,132 @@
+/* @(#)prototyp.h      1.17 15/12/26 Copyright 1995-2015 J. Schilling */
+/*
+ *     Definitions for dealing with ANSI / KR C-Compilers
+ *
+ *     Copyright (c) 1995-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+/*
+ * <schily/mconfig.h> includes <schily/prototyp.h>
+ * To be correct, we need to include <schily/mconfig.h> before we test
+ * for _SCHILY_PROTOTYP_H
+ *
+ * In order to keep the silly Solaris hdrchk(1) quiet, we are forced to
+ * have the _SCHILY_PROTOTYP_H first in <schily/prototyp.h>.
+ * To keep hdrchk(1) quiet and be correct, we need to introduce a second
+ * guard _SCHILY_PROTOTYP_X_H.
+ */
+#ifndef        _SCHILY_PROTOTYP_H
+#define        _SCHILY_PROTOTYP_H
+
+#ifndef _SCHILY_MCONFIG_H
+#undef _SCHILY_PROTOTYP_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_PROTOTYP_X_H
+#define        _SCHILY_PROTOTYP_X_H
+
+#include <schily/ccomdefs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef        PROTOTYPES
+       /*
+        * If this has already been defined,
+        * someone else knows better than us...
+        */
+#      ifdef   __STDC__
+#              if      __STDC__                                /* ANSI C */
+#                      define  PROTOTYPES
+#              endif
+#              if      defined(sun) && __STDC__ - 0 == 0       /* Sun C */
+#                      define  PROTOTYPES
+#              endif
+#      endif
+#endif /* PROTOTYPES */
+
+#if    !defined(PROTOTYPES) && (defined(__cplusplus) || defined(_MSC_VER))
+       /*
+        * C++ always supports prototypes.
+        * Define PROTOTYPES so we are not forced to make
+        * a separtate autoconf run for C++
+        *
+        * Microsoft C has prototypes but does not define __STDC__
+        */
+#      define  PROTOTYPES
+#endif
+
+/*
+ * If we have prototypes, we should have stdlib.h string.h stdarg.h
+ */
+#ifdef PROTOTYPES
+#if    !(defined(SABER) && defined(sun))
+#      ifndef  HAVE_STDARG_H
+#              define  HAVE_STDARG_H
+#      endif
+#endif
+#ifndef        JOS
+#      ifndef  HAVE_STDLIB_H
+#              define  HAVE_STDLIB_H
+#      endif
+#      ifndef  HAVE_STRING_H
+#              define  HAVE_STRING_H
+#      endif
+#      ifndef  HAVE_STDC_HEADERS
+#              define  HAVE_STDC_HEADERS
+#      endif
+#      ifndef  STDC_HEADERS
+#              define  STDC_HEADERS    /* GNU name */
+#      endif
+#endif
+#endif
+
+#ifdef NO_PROTOTYPES           /* Force not to use prototypes */
+#      undef   PROTOTYPES
+#endif
+
+#ifdef PROTOTYPES
+#      define  __PR(a) a
+#else
+#      define  __PR(a) ()
+#endif
+
+#if !defined(PROTOTYPES) && !defined(NO_CONST_DEFINE)
+#      ifndef  const
+#              define  const
+#      endif
+#      ifndef  signed
+#              define  signed
+#      endif
+#      ifndef  volatile
+#              define  volatile
+#      endif
+#endif
+
+#ifdef PROTOTYPES
+#define        ALERT   '\a'
+#else
+#define        ALERT   '\07'
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_PROTOTYP_X_H */
+#endif /* _SCHILY_PROTOTYP_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/schily.h
new file mode 100644 (file)
index 0000000..4aca72d
--- /dev/null
@@ -0,0 +1,658 @@
+/* @(#)schily.h        1.120 16/09/28 Copyright 1985-2016 J. Schilling */
+/*
+ *     Definitions for libschily
+ *
+ *     This file should be included past:
+ *
+ *     schily/mconfig.h / config.h
+ *     schily/standard.h
+ *     stdio.h
+ *     stdlib.h        (better use schily/stdlib.h)
+ *     unistd.h        (better use schily/unistd.h) needed f. LARGEFILE support
+ *     schily/string.h
+ *     sys/types.h
+ *
+ *     If you need stdio.h, you must include it before schily/schily.h
+ *
+ *     NOTE: If you need ctype.h and did not include stdio.h you need to
+ *     include ctype.h past schily/schily.h as OpenBSD does not follow POSIX
+ *     and defines EOF in ctype.h
+ *
+ *     Copyright (c) 1985-2016 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_SCHILY_H
+#define        _SCHILY_SCHILY_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef _SCHILY_STANDARD_H
+#include <schily/standard.h>
+#endif
+#ifndef _SCHILY_CCOMDEFS_H
+#include <schily/ccomdefs.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(off_t)
+#      ifndef  FOUND_OFF_T
+#      define  FOUND_OFF_T
+#      endif
+#endif
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
+#      ifndef  FOUND_SIZE_T
+#      define  FOUND_SIZE_T
+#      endif
+#endif
+#if    defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
+#      undef   FOUND_SIZE_T
+#endif
+
+#ifdef __never_def__
+/*
+ * It turns out that we cannot use the folloginw definition because there are
+ * some platforms that do not behave application friendly. These are mainly
+ * BSD-4.4 based systems (which #undef a definition when size_t is available.
+ * We actually removed this code because of a problem with QNX Neutrino.
+ * For this reason, it is important not to include <sys/types.h> directly but
+ * via the Schily SING include files so we know whether it has been included
+ * before we come here.
+ */
+#if    defined(_SIZE_T)        || defined(_T_SIZE_)    || defined(_T_SIZE) || \
+       defined(__SIZE_T)       || defined(_SIZE_T_)    || \
+       defined(_GCC_SIZE_T)    || defined(_SIZET_)     || \
+       defined(__sys_stdtypes_h) || defined(___int_size_t_h) || defined(size_t)
+
+#ifndef        FOUND_SIZE_T
+#      define  FOUND_SIZE_T    /* We already included a size_t definition */
+#endif
+#endif
+#endif /* __never_def__ */
+
+#if    defined(HAVE_LARGEFILES)
+#      define  _fcons          _fcons64
+#      define  fdup            fdup64
+#      define  fileluopen      fileluopen64
+#      define  fileopen        fileopen64
+#      define  filemopen       filemopen64
+#      define  filepos         filepos64
+#      define  filereopen      filereopen64
+#      define  fileseek        fileseek64
+#      define  filesize        filesize64
+#      define  filestat        filestat64
+#      define  _openfd         _openfd64
+#endif
+
+/*
+ * The official POSIX rule is not to define "new" interfaces that
+ * are in conflict with older interfaces of the same name.
+ * Our interfaces fexec*() have been defined and published in 1982.
+ * The new POSIX interfaces define a different interface and the
+ * new POSIX interfaces even use names that are not compatible with
+ * POSIX rules. The new POSIX interfaces in question should be called
+ * fdexec*() to follow the rules of other similar POSIX functions.
+ * Simiar problems exist with getline()/fgetline().
+ */
+#if    defined(HAVE_RAW_FEXECL) || defined(HAVE_RAW_FEXECLE) || \
+       defined(HAVE_RAW_FEXECV) || defined(HAVE_RAW_FEXECVE)
+#define        RENAME_FEXEC
+#endif
+#if    defined(HAVE_RAW_FSPAWNV) || defined(HAVE_RAW_FSPAWNL) || \
+       defined(HAVE_RAW_FSPAWNV_NOWAIT)
+#define        RENAME_FSPAWN
+#endif
+#if    defined(HAVE_RAW_GETLINE) || defined(HAVE_RAW_FGETLINE)
+#define        RENAME_GETLINE
+#endif
+
+#ifdef __needed__
+#define        RENAME_FEXEC
+#define        RENAME_FSPAWN
+#define        RENAME_GETLINE
+#endif
+
+#if    defined(RENAME_FEXEC) || defined(RENAME_FSPAWN)
+#ifndef        _SCHILY_UNISTD_H
+#include <schily/unistd.h>     /* Need to incl. before fexec*() protoypes */
+#endif
+#endif
+
+#if    defined(RENAME_GETLINE)
+#ifndef _SCHILY_STDIO_H
+#include <schily/stdio.h>      /* Need to incl. before *getline() protoypes */
+#endif
+
+#endif
+
+#ifdef EOF     /* stdio.h has been included */
+
+extern int     _cvmod __PR((const char *, int *, int *));
+extern FILE    *_fcons __PR((FILE *, int, int));
+extern FILE    *fdup __PR((FILE *));
+#if    !defined(fdown) || defined(PROTOTYPES)
+/*
+ * We cannot declare fdown() with K&R in case that fdown() has been #define'd
+ */
+extern int     fdown __PR((FILE *));
+#endif
+extern int     js_fexecl __PR((const char *, FILE *, FILE *, FILE *,
+                                                       const char *, ...));
+extern int     js_fexecle __PR((const char *, FILE *, FILE *, FILE *,
+                                                       const char *, ...));
+               /* 6th arg not const, fexecv forces av[ac] = NULL */
+extern int     js_fexecv __PR((const char *, FILE *, FILE *, FILE *, int,
+                                                       char **));
+extern int     js_fexecve __PR((const char *, FILE *, FILE *, FILE *,
+                                       char * const *, char * const *));
+extern int     js_fspawnv __PR((FILE *, FILE *, FILE *, int, char * const *));
+extern int     js_fspawnl __PR((FILE *, FILE *, FILE *, const char *, ...));
+extern int     js_fspawnv_nowait __PR((FILE *, FILE *, FILE *,
+                                       const char *, int, char *const*));
+extern int     js_fgetline __PR((FILE *, char *, int));
+#ifdef FOUND_SIZE_T
+extern ssize_t fgetaline __PR((FILE *, char **, size_t *));
+extern ssize_t getaline __PR((char **, size_t *));
+#endif
+extern int     fgetstr __PR((FILE *, char *, int));
+extern int     file_getraise __PR((FILE *));
+extern void    file_raise __PR((FILE *, int));
+extern int     fileclose __PR((FILE *));
+extern FILE    *fileluopen __PR((int, const char *));
+extern FILE    *fileopen __PR((const char *, const char *));
+#ifdef _SCHILY_TYPES_H
+extern FILE    *filemopen __PR((const char *, const char *, mode_t));
+#endif
+#ifdef FOUND_OFF_T
+extern off_t   filepos __PR((FILE *));
+#endif
+#ifdef FOUND_SIZE_T
+extern ssize_t fileread __PR((FILE *, void *, size_t));
+extern ssize_t ffileread __PR((FILE *, void *, size_t));
+#endif
+extern FILE    *filereopen __PR((const char *, const char *, FILE *));
+#ifdef FOUND_OFF_T
+extern int     fileseek __PR((FILE *, off_t));
+extern off_t   filesize __PR((FILE *));
+#endif
+#ifdef S_IFMT
+extern int     filestat __PR((FILE *, struct stat *));
+#endif
+#ifdef FOUND_SIZE_T
+extern ssize_t filewrite __PR((FILE *, void *, size_t));
+extern ssize_t ffilewrite __PR((FILE *, void *, size_t));
+#endif
+extern int     flush __PR((void));
+extern int     fpipe __PR((FILE **));
+#ifdef __never__
+extern int     fprintf __PR((FILE *, const char *, ...)) __printflike__(2, 3);
+#endif
+extern int     getbroken __PR((FILE *, char *, char, char **, int));
+extern int     ofindline __PR((FILE *, char, const char *, int,
+                                                       char **, int));
+extern int     peekc __PR((FILE *));
+
+#ifdef __never_def__
+/*
+ * We cannot define this or we may get into problems with DOS based systems.
+ */
+extern int     spawnv __PR((FILE *, FILE *, FILE *, int, char * const *));
+extern int     spawnl __PR((FILE *, FILE *, FILE *, const char *, ...));
+extern int     spawnv_nowait __PR((FILE *, FILE *, FILE *,
+                                       const char *, int, char *const*));
+#endif /* __never_def__ */
+#endif /* EOF */
+
+/*
+ * Flags for absfpath() and resolvefpath():
+ */
+#define        RSPF_EXIST              0x01    /* All path components must exist    */
+#define        RSPF_NOFOLLOW_LAST      0x02    /* Don't follow link in last pathcomp */
+
+#ifdef FOUND_SIZE_T
+extern char    *abspath __PR((const char *relp, char *absp, size_t asize));
+extern char    *absnpath __PR((const char *relp, char *absp, size_t asize));
+extern char    *absfpath __PR((const char *relp, char *absp, size_t asize,
+                               int __flags));
+#ifndef        HAVE_RESOLVEPATH
+extern int     resolvepath __PR((const char *__path,
+                               char *__buf, size_t __bufsiz));
+#endif
+extern int     resolvenpath __PR((const char *__path,
+                               char *__buf, size_t __bufsiz));
+extern int     resolvefpath __PR((const char *__path,
+                               char *__buf, size_t __bufsiz, int __flags));
+#endif
+
+#ifdef _SCHILY_TYPES_H
+extern int     mkdirs __PR((char *, mode_t));
+extern int     makedirs __PR((char *, mode_t, int __striplast));
+#endif
+
+extern int     lxchdir __PR((char *));
+#ifdef HAVE_FCHDIR
+#define        fdsetname(fd, name)     (0)
+#define        fdclosename(fd)         (0)
+#else
+extern int     fdsetname __PR((int fd, const char *name));
+extern int     fdclosename __PR((int fd));
+#endif
+extern int     diropen __PR((const char *));
+extern int     dirrdopen __PR((const char *));
+extern int     dirclose __PR((int));
+
+struct save_wd {
+       int     fd;
+       char    *name;
+};
+
+extern int     savewd  __PR((struct save_wd *sp));
+extern void    closewd __PR((struct save_wd *sp));
+extern int     restorewd __PR((struct save_wd *sp));
+
+
+#ifdef _SCHILY_UTYPES_H
+typedef struct gnmult {
+       char    key;
+       Llong   mult;
+} gnmult_t;
+
+extern int     getllnum __PR((char *arg, Llong *lvalp));
+extern int     getxnum  __PR((char *arg, long *valp, gnmult_t *mult));
+extern int     getllxnum __PR((char *arg, Llong *lvalp, gnmult_t *mult));
+
+extern int     getlltnum  __PR((char *arg, Llong *lvalp));
+extern int     getxtnum  __PR((char *arg, time_t *valp, gnmult_t *mult));
+extern int     getllxtnum __PR((char *arg, Llong *lvalp, gnmult_t *mult));
+#endif
+extern int     getnum  __PR((char *arg, long *valp));
+#ifdef _SCHILY_TIME_H
+extern int     gettnum __PR((char *arg, time_t *valp));
+#endif
+
+#ifdef _SCHILY_TIME_H
+
+extern int             getnstimeofday  __PR((struct timespec *__tp));
+extern int             setnstimeofday  __PR((struct timespec *__tp));
+
+#ifdef _SCHILY_UTYPES_H
+extern Llong           mklgmtime       __PR((struct tm *));
+#endif
+extern time_t          mkgmtime        __PR((struct tm *));
+#endif
+
+
+#ifdef EOF                     /* stdio.h has been included */
+#ifdef _SCHILY_TYPES_H
+/*
+ * getperm() flags:
+ */
+#define        GP_NOX          0       /* This is not a dir and 'X' is not valid */
+#define        GP_DOX          1       /* 'X' perm character is valid            */
+#define        GP_XERR         2       /* 'X' perm characters are invalid        */
+#define        GP_FPERM        4       /* TRUE if we implement find -perm        */
+#define        GP_UMASK        8       /* TRUE if we implement umask             */
+
+extern int     getperm __PR((FILE *f, char *perm, char *opname, \
+                               mode_t *modep, int smode, int flag));
+extern void    permtostr       __PR((mode_t mode, char *));
+#endif
+#endif
+
+#ifdef FOUND_SIZE_T
+extern ssize_t _niread __PR((int, void *, size_t));
+extern ssize_t _niwrite __PR((int, void *, size_t));
+extern ssize_t _nixread __PR((int, void *, size_t));
+extern ssize_t _nixwrite __PR((int, void *, size_t));
+#endif
+extern int     _openfd __PR((const char *, int));
+extern int     on_comerr __PR((void (*fun)(int, void *), void *arg));
+/*PRINTFLIKE1*/
+extern void    comerr __PR((const char *, ...)) __printflike__(1, 2);
+/*PRINTFLIKE2*/
+extern void    xcomerr  __PR((int, const char *, ...)) __printflike__(2, 3);
+/*PRINTFLIKE2*/
+extern void    comerrno __PR((int, const char *, ...)) __printflike__(2, 3);
+/*PRINTFLIKE3*/
+extern void    xcomerrno __PR((int, int, const char *, ...)) __printflike__(3, 4);
+/*PRINTFLIKE1*/
+extern int     errmsg __PR((const char *, ...)) __printflike__(1, 2);
+/*PRINTFLIKE2*/
+extern int     errmsgno __PR((int, const char *, ...)) __printflike__(2, 3);
+#ifdef FOUND_SIZE_T
+/*PRINTFLIKE3*/
+extern int     serrmsg __PR((char *, size_t, const char *, ...))
+                                       __printflike__(3, 4);
+/*PRINTFLIKE4*/
+extern int     serrmsgno __PR((int, char *, size_t, const char *, ...))
+                                       __printflike__(4, 5);
+#endif
+extern void    comexit __PR((int));
+extern char    *errmsgstr __PR((int));
+
+#ifdef EOF     /* stdio.h has been included */
+/*PRINTFLIKE2*/
+extern void    fcomerr         __PR((FILE *, const char *, ...))
+                                       __printflike__(2, 3);
+/*PRINTFLIKE3*/
+extern void    fxcomerr        __PR((FILE *, int, const char *, ...))
+                                       __printflike__(3, 4);
+/*PRINTFLIKE3*/
+extern void    fcomerrno       __PR((FILE *, int, const char *, ...))
+                                       __printflike__(3, 4);
+/*PRINTFLIKE4*/
+extern void    fxcomerrno      __PR((FILE *, int, int, const char *, ...))
+                                       __printflike__(4, 5);
+/*PRINTFLIKE2*/
+extern int     ferrmsg         __PR((FILE *, const char *, ...))
+                                       __printflike__(2, 3);
+/*PRINTFLIKE3*/
+extern int     ferrmsgno       __PR((FILE *, int, const char *, ...))
+                                       __printflike__(3, 4);
+#ifdef _SCHILY_VARARGS_H
+#define        COMERR_RETURN   0
+#define        COMERR_EXIT     1
+#define        COMERR_EXCODE   2
+/*PRINTFLIKE5*/
+extern int     _comerr         __PR((FILE *, int, int, int,
+                                               const char *, va_list));
+#endif
+#endif
+
+/*PRINTFLIKE1*/
+extern int     error __PR((const char *, ...)) __printflike__(1, 2);
+#ifdef FOUND_SIZE_T
+extern char    *fillbytes __PR((void *, ssize_t, char));
+extern char    *zerobytes __PR((void *, ssize_t));
+extern char    *findbytes __PR((const void *, ssize_t, char));
+#endif
+extern char    *findinpath __PR((char *__name, int __mode,
+                                       BOOL __plain_file, char *__path));
+extern int     findline __PR((const char *, char, const char *,
+                                                       int, char **, int));
+extern int     js_getline __PR((char *, int));
+extern int     getstr __PR((char *, int));
+extern int     breakline __PR((char *, char, char **, int));
+extern int     getallargs __PR((int *, char * const**, const char *, ...));
+extern int     getargs __PR((int *, char * const**, const char *, ...));
+extern int     getfiles __PR((int *, char * const**, const char *));
+extern char    *astoi __PR((const char *, int *));
+extern char    *astol __PR((const char *, long *));
+extern char    *astolb __PR((const char *, long *, int base));
+#ifdef _SCHILY_UTYPES_H
+extern char    *astoll __PR((const char *, Llong *));
+extern char    *astollb __PR((const char *, Llong *, int));
+extern char    *astoull __PR((const char *, Ullong *));
+extern char    *astoullb __PR((const char *, Ullong *, int));
+#endif
+
+extern int             patcompile __PR((const unsigned char *, int, int *));
+extern unsigned char   *patmatch __PR((const unsigned char *, const int *,
+                                       const unsigned char *,
+                                       int, int, int, int[]));
+extern unsigned char   *patlmatch __PR((const unsigned char *, const int *,
+                                       const unsigned char *,
+                                       int, int, int, int[]));
+
+#ifdef __never__
+extern int     printf __PR((const char *, ...)) __printflike__(1, 2);
+#endif
+#ifdef FOUND_SIZE_T
+extern char    *movebytes __PR((const void *, void *, ssize_t));
+#endif
+
+extern void    save_args __PR((int, char **));
+extern int     saved_ac __PR((void));
+extern char    **saved_av __PR((void));
+extern char    *saved_av0 __PR((void));
+extern char    *searchfileinpath __PR((char *__name, int __mode,
+                                       int __file_mode, char *__path));
+#define        SIP_ANY_FILE    0x00    /* Search for any file type             */
+#define        SIP_PLAIN_FILE  0x01    /* Search for plain files - not dirs    */
+#define        SIP_NO_PATH     0x10    /* Do not do PATH search                */
+#define        SIP_ONLY_PATH   0x20    /* Do only PATH search                  */
+#define        SIP_NO_STRIPBIN 0x40    /* Do not strip "/bin" from PATH elem.  */
+#define        SIP_TYPE_MASK   0x0F    /* Mask file type related bits          */
+
+#ifndef        seterrno
+extern int     seterrno __PR((int));
+#endif
+extern void    set_progname __PR((const char *));
+extern char    *get_progname __PR((void));
+extern char    *get_progpath __PR((void));
+extern char    *getexecpath __PR((void));
+
+extern void    setfp __PR((void * const *));
+extern int     wait_chld __PR((int));          /* for fspawnv_nowait() */
+extern int     geterrno __PR((void));
+extern void    raisecond __PR((const char *, long));
+#ifdef __never__
+/*
+ * sprintf() may be declared incorrectly somewhere else
+ * e.g. in old BSD include files
+ */
+extern int     sprintf __PR((char *, const char *, ...));
+#endif
+extern char    *strcatl __PR((char *, ...));
+#ifdef FOUND_SIZE_T
+extern size_t  strlcatl __PR((char *, size_t, ...));
+#endif
+extern int     streql __PR((const char *, const char *));
+#ifdef _SCHILY_WCHAR_H
+extern wchar_t *wcscatl __PR((wchar_t *, ...));
+#ifdef FOUND_SIZE_T
+extern size_t  wcslcatl __PR((wchar_t *, size_t, ...));
+#endif
+extern int     wcseql __PR((const wchar_t *, const wchar_t *));
+#endif
+#ifdef va_arg
+extern int     format __PR((void (*)(char, long), long, const char *,
+                                                       va_list));
+extern int     fprformat __PR((long, const char *, va_list));
+#else
+extern int     format __PR((void (*)(char, long), long, const char *, void *));
+extern int     fprformat __PR((long, const char *, void *));
+#endif
+
+extern int     ftoes __PR((char *, double, int, int));
+extern int     ftofs __PR((char *, double, int, int));
+#ifdef HAVE_LONGDOUBLE
+extern int     qftoes __PR((char *, long double, int, int));
+extern int     qftofs __PR((char *, long double, int, int));
+#endif
+
+/*PRINTFLIKE1*/
+extern int     js_error __PR((const char *, ...)) __printflike__(1, 2);
+/*PRINTFLIKE2*/
+extern int     js_dprintf      __PR((int, const char *, ...))
+                                                       __printflike__(2, 3);
+#ifdef EOF     /* stdio.h has been included */
+/*PRINTFLIKE2*/
+extern int     js_fprintf      __PR((FILE *, const char *, ...))
+                                                       __printflike__(2, 3);
+#endif /* EOF */
+/*PRINTFLIKE1*/
+extern int     js_printf       __PR((const char *, ...)) __printflike__(1, 2);
+#ifdef FOUND_SIZE_T
+/*PRINTFLIKE3*/
+extern int     js_snprintf     __PR((char *, size_t, const char *, ...))
+                                                       __printflike__(3, 4);
+#endif
+/*PRINTFLIKE2*/
+extern int     js_sprintf      __PR((char *, const char *, ...))
+                                                       __printflike__(2, 3);
+
+#ifdef FOUND_SIZE_T
+extern void    swabbytes       __PR((void *, ssize_t));
+#endif
+extern char    **getmainfp     __PR((void));
+extern char    **getavp        __PR((void));
+extern char    *getav0         __PR((void));
+extern void    **getfp         __PR((void));
+extern int     flush_reg_windows __PR((int));
+#ifdef FOUND_SIZE_T
+extern ssize_t cmpbytes        __PR((const void *, const void *, ssize_t));
+extern int     cmpmbytes       __PR((const void *, const void *, ssize_t));
+extern ssize_t cmpnullbytes    __PR((const void *, ssize_t));
+#endif
+
+#ifdef nonono
+#if    defined(HAVE_LARGEFILES)
+/*
+ * To allow this, we need to figure out how to do autoconfiguration for off64_t
+ */
+extern FILE    *_fcons64       __PR((FILE *, int, int));
+extern FILE    *fdup64         __PR((FILE *));
+extern FILE    *fileluopen64   __PR((int, const char *));
+extern FILE    *fileopen64     __PR((const char *, const char *));
+#ifdef FOUND_OFF_T
+extern off64_t filepos64       __PR((FILE *));
+#endif
+extern FILE    *filereopen64   __PR((const char *, const char *, FILE *));
+#ifdef FOUND_OFF_T
+extern int     fileseek64      __PR((FILE *, off64_t));
+extern off64_t filesize64      __PR((FILE *));
+#endif
+#ifdef S_IFMT
+extern int     filestat64      __PR((FILE *, struct stat *));
+#endif
+extern int     _openfd64       __PR((const char *, int));
+#endif
+#endif
+
+#ifndef        NO_SCHILY_PRINT         /* Define to disable *printf() redirects */
+#ifdef SCHILY_PRINT
+#ifdef __never__
+#undef error
+#define        error           js_error
+#endif
+#undef dprintf
+#define        dprintf         js_dprintf
+#undef fprintf
+#define        fprintf         js_fprintf
+#undef printf
+#define        printf          js_printf
+#undef snprintf
+#define        snprintf        js_snprintf
+#undef sprintf
+#define        sprintf         js_sprintf
+#else
+#ifndef        HAVE_SNPRINTF
+#undef snprintf
+#define        snprintf        js_snprintf
+#endif
+#endif
+#endif
+
+#ifndef        NO_SCHILY_GETLINE       /* Define to disable *getline() redirect */
+#undef getline
+#define        getline         js_getline
+#undef fgetline
+#define        fgetline        js_fgetline
+#endif
+
+#ifndef        NO_SCHILY_FEXEC         /* Define to disable fexec*() redirect */
+#undef fexecl
+#define        fexecl          js_fexecl
+#undef fexecle
+#define        fexecle         js_fexecle
+#undef fexecv
+#define        fexecv          js_fexecv
+#undef fexecve
+#define        fexecve         js_fexecve
+#endif
+
+#ifndef        NO_SCHILY_FSPAWN        /* Define to disable fspawn*() redirect */
+#undef fspawnv
+#define        fspawnv         js_fspawnv
+#undef fspawnv_nowait
+#define        fspawnv_nowait  js_fspawnv_nowait
+#undef fspawnl
+#define        fspawnl         js_fspawnl
+#endif
+
+extern int     js_mexval       __PR((int exval));
+#ifdef FOUND_SIZE_T
+extern void    *js_malloc      __PR((size_t size, char *msg));
+extern void    *js_realloc     __PR((void *ptr, size_t size, char *msg));
+#endif
+extern char    *js_savestr     __PR((const char *s));
+
+#ifdef _SCHILY_JMPDEFS_H
+
+/*
+ * Special values for the "jmp" parameter.
+ *
+ * Control how the siglongjmp() should be handled:
+ */
+#define        JM_EXIT         ((sigjmps_t *)-1) /* Call comexit(errno) instead */
+#define        JM_RETURN       ((sigjmps_t *)0)  /* Return instead              */
+
+extern int     js_jmexval      __PR((int exval));
+#ifdef FOUND_SIZE_T
+extern void    *js_jmalloc     __PR((size_t size, char *msg, sigjmps_t *jmp));
+extern void    *js_jrealloc    __PR((void *ptr, size_t size, char *msg,
+                                                       sigjmps_t *jmp));
+#endif
+extern char    *js_jsavestr    __PR((const char *s, sigjmps_t *jmp));
+
+extern int     js_fjmexval     __PR((int exval));
+#ifdef EOF     /* stdio.h has been included */
+#ifdef FOUND_SIZE_T
+extern void    *js_fjmalloc    __PR((FILE *f, size_t size, char *msg,
+                                               sigjmps_t *jmp));
+extern void    *js_fjrealloc   __PR((FILE *f, void *ptr, size_t size,
+                                               char *msg, sigjmps_t *jmp));
+#endif
+extern char    *js_fjsavestr   __PR((FILE *f, const char *s, sigjmps_t *jmp));
+#endif /* EOF */
+#endif /* _SCHILY_JMPDEFS_H */
+
+#define        ___mexval       js_mexval
+#define        ___malloc       js_malloc
+#define        ___realloc      js_realloc
+#define        ___savestr      js_savestr
+#define        __jmexval       js_jmexval
+#define        __jmalloc       js_jmalloc
+#define        __jrealloc      js_jrealloc
+#define        __jsavestr      js_jsavestr
+#define        __fjmalloc      js_fjmalloc
+#define        __fjmexval      js_fjmexval
+#define        __fjrealloc     js_fjrealloc
+#define        __fjsavestr     js_fjsavestr
+
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(_JOS) || defined(JOS)
+#      ifndef  _SCHILY_JOS_IO_H
+#      include <schily/jos_io.h>
+#      endif
+#endif
+
+#if !defined(_SCHILY_LIBPORT_H) && !defined(NO_LIBPORT_H)
+#include <schily/libport.h>
+#endif
+#if !defined(_SCHILY_HOSTNAME_H) && defined(USE_HOSTNAME_H)
+#include <schily/hostname.h>
+#endif
+
+#endif /* _SCHILY_SCHILY_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/siconv.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/siconv.h
new file mode 100644 (file)
index 0000000..370cf3b
--- /dev/null
@@ -0,0 +1,63 @@
+/* @(#)siconv.h        1.5 10/12/20 Copyright 2007-2010 J. Schilling */
+/*
+ *     Definitions fur users of libsiconv
+ *
+ *     Copyright (c) 2007-2010 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_SICONV_H
+#define        _SCHILY_SICONV_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+#ifndef _SCHILY_UTYPES_H
+#include <schily/utypes.h>
+#endif
+#ifndef _SCHILY_ICONV_H
+#include <schily/iconv.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef struct siconv_table    siconvt_t;
+struct siconv_table {
+       char            *sic_name;              /* SICONV charset name  */
+       UInt16_t        *sic_cs2uni;            /* Charset -> Unicode   */
+       UInt8_t         **sic_uni2cs;           /* Unicode -> Charset   */
+       iconv_t         sic_cd2uni;             /* iconv Charset -> Unicode */
+       iconv_t         sic_uni2cd;             /* iconv Unicode -> Charset */
+       siconvt_t       *sic_alt;               /* alternate iconv tab  */
+       siconvt_t       *sic_next;              /* Next table           */
+       int             sic_refcnt;             /* Reference count      */
+};
+
+#define        use_iconv(t)    ((t)->sic_cd2uni != NULL)
+
+#define        sic_c2uni(t, c) ((t)->sic_cs2uni[c])
+#define        sic_uni2c(t, c) ((t)->sic_uni2cs[((c) >> 8) & 0xFF][(c) & 0xFF])
+
+extern int             sic_list                __PR((FILE *));
+extern siconvt_t       *sic_open               __PR((char *));
+extern const char      *sic_base               __PR((void));
+extern int             sic_close               __PR((siconvt_t *));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_SICONV_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/sigblk.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/sigblk.h
new file mode 100644 (file)
index 0000000..418abd7
--- /dev/null
@@ -0,0 +1,62 @@
+/* @(#)sigblk.h        1.12 08/12/24 Copyright 1985, 1995-2008 J. Schilling */
+/*
+ *     software signal block definition
+ *
+ *     Copyright (c) 1985, 1995-2008 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_SIGBLK_H
+#define        _SCHILY_SIGBLK_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct sigblk {
+       long            **sb_savfp;     /* Real saved framepointer      */
+       struct sigblk   *sb_signext;    /* Next sw signal blk for this func */
+       short           sb_siglen;      /* Strlen for sb_signame        */
+       const char      *sb_signame;    /* Name of software signal      */
+
+                                       /* sb_sigfun: function to call  */
+       int             (*sb_sigfun)    __PR((const char *, long, long));
+
+       long            sb_sigarg;      /* Second arg for sb_sigfun     */
+} SIGBLK;
+
+/*
+ * The handler function is called with three arguments:
+ *
+ *     1)      The name of the software signal
+ *     2)      The argument from the handlecond() call
+ *     3)      The argument from the raisecond() call
+ */
+typedef        int     (*handlefunc_t)         __PR((const char *, long, long));
+
+extern void    handlecond              __PR((const char *, SIGBLK *,
+                                           int(*)(const char *, long, long),
+                                                                       long));
+extern void    raisecond               __PR((const char *, long));
+extern void    starthandlecond         __PR((SIGBLK *));
+extern void    unhandlecond            __PR((SIGBLK *));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_SIGBLK_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/standard.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/standard.h
new file mode 100644 (file)
index 0000000..e810184
--- /dev/null
@@ -0,0 +1,159 @@
+/* @(#)standard.h      1.40 13/05/01 Copyright 1985-2013 J. Schilling */
+/*
+ *     standard definitions
+ *
+ *     This file should be included past:
+ *
+ *     mconfig.h / config.h
+ *     stdio.h
+ *     stdlib.h        (better use schily/stdlib.h)
+ *     unistd.h        (better use schily/unistd.h) needed f. LARGEFILE support
+ *
+ *     If you need stdio.h, you must include it before standard.h
+ *
+ *     Copyright (c) 1985-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_STANDARD_H
+#define        _SCHILY_STANDARD_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef M68000
+#      ifndef  tos
+#              define  JOS     1
+#      endif
+#endif
+
+/*
+ *     fundamental constants
+ */
+#ifndef        NULL
+#      define  NULL            0
+#endif
+#ifndef        TRUE
+#      define  TRUE            1
+#      define  FALSE           0
+#endif
+
+/*
+ *     Program exit codes used with comerr(), comexit() and similar.
+ *
+ *     Exit codes between -2 and -63 are currently available to flag
+ *     program specific error conditions.
+ */
+#define        EX_BAD                  (-1)    /* Default error exit code          */
+#define        EX_CLASH                (-64)   /* Exit code used with exit clashes */
+
+/*
+ *     standard storage class definitions
+ */
+#define        GLOBAL  extern
+#define        IMPORT  extern
+#define        EXPORT
+#define        INTERN  static
+#define        LOCAL   static
+#define        FAST    register
+
+#ifndef        PROTOTYPES
+#      ifndef  const
+#              define  const
+#      endif
+#      ifndef  signed
+#              define  signed
+#      endif
+#      ifndef  volatile
+#              define  volatile
+#      endif
+#endif /* PROTOTYPES */
+
+/*
+ *     standard type definitions
+ *
+ *     The hidden Schily BOOL definition is used in case we need to deal
+ *     with other BOOL defines on systems we like to port to.
+ */
+typedef int __SBOOL;
+typedef int BOOL;
+#ifdef JOS
+#      ifndef  __GNUC__
+#      define  NO_VOID
+#      endif
+#endif
+#ifdef NO_VOID
+#      ifndef  lint
+               typedef int void;
+#      endif
+#endif
+
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(off_t)
+#      ifndef  FOUND_OFF_T
+#      define  FOUND_OFF_T
+#      endif
+#endif
+#if    defined(_INCL_SYS_TYPES_H) || defined(_INCL_TYPES_H) || defined(size_t)
+#      ifndef  FOUND_SIZE_T
+#      define  FOUND_SIZE_T
+#      endif
+#endif
+#if    defined(_MSC_VER) && !defined(_SIZE_T_DEFINED)
+#      undef   FOUND_SIZE_T
+#endif
+
+#ifdef __never_def__
+/*
+ * It turns out that we cannot use the folloginw definition because there are
+ * some platforms that do not behave application friendly. These are mainly
+ * BSD-4.4 based systems (which #undef a definition when size_t is available.
+ * We actually removed this code because of a problem with QNX Neutrino.
+ * For this reason, it is important not to include <sys/types.h> directly but
+ * via the Schily SING include files so we know whether it has been included
+ * before we come here.
+ */
+#if    defined(_SIZE_T)        || defined(_T_SIZE_)    || defined(_T_SIZE) || \
+       defined(__SIZE_T)       || defined(_SIZE_T_)    || \
+       defined(_GCC_SIZE_T)    || defined(_SIZET_)     || \
+       defined(__sys_stdtypes_h) || defined(___int_size_t_h) || defined(size_t)
+
+#ifndef        FOUND_SIZE_T
+#      define  FOUND_SIZE_T    /* We already included a size_t definition */
+#endif
+#endif
+#endif /* __never_def__ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#if defined(_JOS) || defined(JOS)
+#      ifndef  _SCHILY_SCHILY_H
+#      include <schily/schily.h>
+#      endif
+
+#      ifndef  _SCHILY_JOS_DEFS_H
+#      include <schily/jos_defs.h>
+#      endif
+
+#      ifndef  _SCHILY_JOS_IO_H
+#      include <schily/jos_io.h>
+#      endif
+#endif
+
+#endif /* _SCHILY_STANDARD_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/stat.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/stat.h
new file mode 100644 (file)
index 0000000..52dcfe6
--- /dev/null
@@ -0,0 +1,402 @@
+/* @(#)stat.h  1.20 15/08/23 Copyright 1998-2015 J. Schilling */
+/*
+ *     Definitions for stat() file mode
+ *
+ *     Copyright (c) 1998-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_STAT_H
+#define        _SCHILY_STAT_H
+
+#ifndef _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>      /* Needed for sys/stat.h                */
+#endif
+#ifndef        _INCL_SYS_STAT_H
+#include <sys/stat.h>          /* For S_IS* and S_IF*                  */
+#define        _INCL_SYS_STAT_H
+#endif
+
+#if    !defined(HAVE_LSTAT) || !defined(S_IFLNK)
+#define        lstat   stat
+#endif
+
+/*
+ * Apollo Domain/OS has a broken sys/stat.h that defines
+ * S_IFIFO == S_IFSOCK and creates trouble if the constants
+ * are used as case labels.
+ */
+#if S_IFIFO == S_IFSOCK
+#      undef   S_IFSOCK
+#endif
+
+#ifdef STAT_MACROS_BROKEN
+#undef S_ISFIFO                        /* Named pipe           */
+#undef S_ISCHR                         /* Character special    */
+#undef S_ISMPC                         /* UNUSED multiplexed c */
+#undef S_ISDIR                         /* Directory            */
+#undef S_ISNAM                         /* Named file (XENIX)   */
+#undef S_ISBLK                         /* Block special        */
+#undef S_ISMPB                         /* UNUSED multiplexed b */
+#undef S_ISREG                         /* Regular file         */
+#undef S_ISCTG                         /* Contiguous file      */
+#undef S_ISLNK                         /* Symbolic link        */
+#undef S_ISSHAD                        /* Solaris shadow inode */
+#undef S_ISSOCK                        /* UNIX domain socket   */
+#undef S_ISDOOR                        /* Solaris DOOR         */
+#undef S_ISPORT                        /* Solaris event port   */
+#undef S_ISWHT                         /* BSD whiteout         */
+#undef S_ISEVC                         /* UNOS eventcount      */
+#endif
+
+#ifndef        S_ISFIFO                        /* 1 Named pipe         */
+#      ifdef   S_IFIFO
+#              define  S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)
+#      else
+#              define  S_ISFIFO(m)     (0)
+#      endif
+#endif
+#ifndef        S_ISCHR                         /* 2 Character special  */
+#      ifdef   S_IFCHR
+#              define  S_ISCHR(m)      (((m) & S_IFMT) == S_IFCHR)
+#      else
+#              define  S_ISCHR(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISMPC                         /* 3 UNUSED multiplexed char    */
+#      ifdef   S_IFMPC
+#              define  S_ISMPC(m)      (((m) & S_IFMT) == S_IFMPC)
+#      else
+#              define  S_ISMPC(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISDIR                         /* 4 Directory                  */
+#      ifdef   S_IFDIR
+#              define  S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
+#      else
+#              define  S_ISDIR(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISNAM                         /* 5 Named file (XENIX)         */
+#      ifdef   S_IFNAM
+#              define  S_ISNAM(m)      (((m) & S_IFMT) == S_IFNAM)
+#      else
+#              define  S_ISNAM(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISBLK                         /* 6 Block special              */
+#      ifdef   S_IFBLK
+#              define  S_ISBLK(m)      (((m) & S_IFMT) == S_IFBLK)
+#      else
+#              define  S_ISBLK(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISMPB                         /* 7 UNUSED multiplexed block   */
+#      ifdef   S_IFMPB
+#              define  S_ISMPB(m)      (((m) & S_IFMT) == S_IFMPB)
+#      else
+#              define  S_ISMPB(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISREG                         /* 8 Regular file               */
+#      ifdef   S_IFREG
+#              define  S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
+#      else
+#              define  S_ISREG(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISCTG                         /* 9 Contiguous file            */
+#      ifdef   S_IFCTG
+#              define  S_ISCTG(m)      (((m) & S_IFMT) == S_IFCTG)
+#      else
+#              define  S_ISCTG(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISLNK                         /* 10 Symbolic link             */
+#      ifdef   S_IFLNK
+#              define  S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)
+#      else
+#              define  S_ISLNK(m)      (0)
+#      endif
+#endif
+#ifndef        S_ISSHAD                        /* 11 Solaris shadow inode      */
+#      ifdef   S_IFSHAD
+#              define  S_ISSHAD(m)     (((m) & S_IFMT) == S_IFSHAD)
+#      else
+#              define  S_ISSHAD(m)     (0)
+#      endif
+#endif
+#ifndef        S_ISSOCK                        /* 12 UNIX domain socket        */
+#      ifdef   S_IFSOCK
+#              define  S_ISSOCK(m)     (((m) & S_IFMT) == S_IFSOCK)
+#      else
+#              define  S_ISSOCK(m)     (0)
+#      endif
+#endif
+#ifndef        S_ISDOOR                        /* 13 Solaris DOOR              */
+#      ifdef   S_IFDOOR
+#              define  S_ISDOOR(m)     (((m) & S_IFMT) == S_IFDOOR)
+#      else
+#              define  S_ISDOOR(m)     (0)
+#      endif
+#endif
+#ifndef        S_ISPORT                        /* 14 Solaris event port        */
+#      ifdef   S_IFPORT
+#              define  S_ISPORT(m)     (((m) & S_IFMT) == S_IFPORT)
+#      else
+#              define  S_ISPORT(m)     (0)
+#      endif
+#endif
+#ifndef        S_ISWHT                         /* 14 BSD whiteout              */
+#      ifdef   S_IFWHT
+#              define  S_ISWHT(m)      (((m) & S_IFMT) == S_ISWHT)
+#      else
+#              define  S_ISWHT(m)      (0)
+#      endif
+#endif
+#ifndef        S_IFEVC                         /* 15 UNOS eventcount           */
+#      ifdef   S_IFEVC
+#              define  S_ISEVC(m)      (((m) & S_IFMT) == S_IFEVC)
+#      else
+#              define  S_ISEVC(m)      (0)
+#      endif
+#endif
+
+#ifndef        S_TYPEISMQ
+/*
+ * XXX ??? where is a definition of a message queue ???
+ */
+#              define  S_TYPEISMQ(_stbuf)      (0)
+#endif
+#ifndef        S_TYPEISSEM
+#      ifdef   S_INSEM
+#              define  S_TYPEISSEM(_stbuf)     (S_ISNAM((_stbuf)->st_mode) && \
+                                               (_stbuf)->st_rdev == S_INSEM)
+#      else
+#              define  S_TYPEISSEM(_stbuf)     (0)
+#      endif
+#endif
+#ifndef        S_TYPEISSHM
+#      ifdef   S_INSHD
+#              define  S_TYPEISSHM(_stbuf)     (S_ISNAM((_stbuf)->st_mode) && \
+                                               (_stbuf)->st_rdev == S_INSHD)
+#      else
+#              define  S_TYPEISSHM(_stbuf)     (0)
+#      endif
+#endif
+
+/*
+ * Mode permission bits.
+ * UNIX V.7 has only   S_ISUID/S_ISGID/S_ISVTX and S_IREAD/S_IWRITE/S_IEXEC
+ *
+ * S_ISUID/S_ISGID/S_ISVTX is available on UNIX V.7 and POSIX
+ */
+#ifndef        S_ISUID                 /* Set-user-ID on execution */
+#define        S_ISUID 0               /* If it is not defined, it is not supported */
+#endif
+#ifndef        S_ISGID                 /* Set-group-ID on execution */
+#define        S_ISGID 0               /* If it is not defined, it is not supported */
+#endif
+#ifndef        S_ISVTX                 /* On directories, restricted deletion flag */
+#define        S_ISVTX 0               /* If it is not defined, it is not supported */
+#endif
+
+/*
+ * S_IREAD/S_IWRITE/S_IEXEC is only available on UNIX V.7 but not on POSIX
+ * Emulate these definitions to support compilation of programs like
+ * SCCS and the Bourne Shell and to make the other definitions simpler.
+ */
+#ifndef        S_IREAD
+#ifdef S_IRUSR
+#define        S_IREAD         S_IRUSR /* Use POSIX name */
+#else
+#define        S_IREAD         0400    /* Very old UNIX, use own definition */
+#endif
+#endif
+#ifndef        S_IWRITE
+#ifdef S_IWUSR
+#define        S_IWRITE        S_IWUSR /* Use POSIX name */
+#else
+#define        S_IWRITE        0200    /* Very old UNIX, use own definition */
+#endif
+#endif
+#ifndef        S_IEXEC
+#ifdef S_IXUSR
+#define        S_IEXEC         S_IXUSR /* Use POSIX name */
+#else
+#define        S_IEXEC         0100    /* Very old UNIX, use own definition */
+#endif
+#endif
+
+#ifndef        S_IRUSR                 /* Read permission, owner */
+#define        S_IRUSR S_IREAD         /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IWUSR                 /* Write permission, owner */
+#define        S_IWUSR S_IWRITE        /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IXUSR                 /* Execute/search permission, owner */
+#define        S_IXUSR S_IEXEC         /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IRGRP                 /* Read permission, group */
+#define        S_IRGRP (S_IREAD >> 3)  /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IWGRP                 /* Write permission, group */
+#define        S_IWGRP (S_IWRITE >> 3) /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IXGRP                 /* Execute/search permission, group */
+#define        S_IXGRP (S_IEXEC >> 3)  /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IROTH                 /* Read permission, others */
+#define        S_IROTH (S_IREAD >> 6)  /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IWOTH                 /* Write permission, others */
+#define        S_IWOTH (S_IWRITE >> 6) /* Needed on old UNIX systems */
+#endif
+#ifndef        S_IXOTH                 /* Execute/search permission, others */
+#define        S_IXOTH (S_IEXEC >> 6)  /* Needed on old UNIX systems */
+#endif
+
+#ifndef        S_IRWXU                 /* Read, write, execute/search by owner */
+#define        S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)
+#endif
+#ifndef        S_IRWXG                 /* Read, write, execute/search by group */
+#define        S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)
+#endif
+#ifndef        S_IRWXO                 /* Read, write, execute/search by others */
+#define        S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)
+#endif
+
+/*
+ * SCO UnixWare has st_atim.st__tim.tv_nsec but the st_atim.tv_nsec tests also
+ * succeeds. If we use st_atim.tv_nsec on UnixWare, we get a warning about
+ * illegal structure usage. For this reason, our code needs to have
+ * #ifdef HAVE_ST__TIM before #ifdef HAVE_ST_NSEC.
+ */
+#if    defined(HAVE_ST_ATIMENSEC)
+
+/*
+ * Found e.g. on NetBSD and OpenBSD.
+ */
+#define        stat_ansecs(s)          ((s)->st_atimensec)
+#define        stat_mnsecs(s)          ((s)->st_mtimensec)
+#define        stat_cnsecs(s)          ((s)->st_ctimensec)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_atimensec = n)
+#define        stat_set_mnsecs(s, n)   ((s)->st_mtimensec = n)
+#define        stat_set_cnsecs(s, n)   ((s)->st_ctimensec = n)
+
+#define        _FOUND_STAT_NSECS_
+#endif
+
+#if    defined(HAVE_ST_ATIME_N)
+
+/*
+ * Found e.g. on AIX.
+ */
+#define        stat_ansecs(s)          ((s)->st_atime_n)
+#define        stat_mnsecs(s)          ((s)->st_mtime_n)
+#define        stat_cnsecs(s)          ((s)->st_ctime_n)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_atime_n = n)
+#define        stat_set_mnsecs(s, n)   ((s)->st_mtime_n = n)
+#define        stat_set_cnsecs(s, n)   ((s)->st_ctime_n = n)
+
+#define        _FOUND_STAT_NSECS_
+#endif
+
+#if    defined(HAVE_ST__TIM) && !defined(_FOUND_STAT_NSECS_)
+
+/*
+ * Found e.g. on UnixWare.
+ */
+#define        stat_ansecs(s)          ((s)->st_atim.st__tim.tv_nsec)
+#define        stat_mnsecs(s)          ((s)->st_mtim.st__tim.tv_nsec)
+#define        stat_cnsecs(s)          ((s)->st_ctim.st__tim.tv_nsec)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_atim.st__tim.tv_nsec = n)
+#define        stat_set_mnsecs(s, n)   ((s)->st_mtim.st__tim.tv_nsec = n)
+#define        stat_set_cnsecs(s, n)   ((s)->st_ctim.st__tim.tv_nsec = n)
+
+#define        _FOUND_STAT_NSECS_
+#endif
+
+#if    defined(HAVE_ST_NSEC) && !defined(_FOUND_STAT_NSECS_)
+
+/*
+ * Found e.g. on SunOS-5.x and IRIX.
+ */
+#define        stat_ansecs(s)          ((s)->st_atim.tv_nsec)
+#define        stat_mnsecs(s)          ((s)->st_mtim.tv_nsec)
+#define        stat_cnsecs(s)          ((s)->st_ctim.tv_nsec)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_atim.tv_nsec = n)
+#define        stat_set_mnsecs(s, n)   ((s)->st_mtim.tv_nsec = n)
+#define        stat_set_cnsecs(s, n)   ((s)->st_ctim.tv_nsec = n)
+
+#define        _FOUND_STAT_NSECS_
+#endif
+
+#if    defined(HAVE_ST_ATIMESPEC) && !defined(_FOUND_STAT_NSECS_)
+
+/*
+ * Found e.g. on FreeBSD and Mac OS X.
+ */
+#define        stat_ansecs(s)          ((s)->st_atimespec.tv_nsec)
+#define        stat_mnsecs(s)          ((s)->st_mtimespec.tv_nsec)
+#define        stat_cnsecs(s)          ((s)->st_ctimespec.tv_nsec)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_atimespec.tv_nsec = n)
+#define        stat_set_mnsecs(s, n)   ((s)->st_mtimespec.tv_nsec = n)
+#define        stat_set_cnsecs(s, n)   ((s)->st_ctimespec.tv_nsec = n)
+
+#define        _FOUND_STAT_NSECS_
+#endif
+
+/*
+ * st_spare1 is last as some implementations keep backwards
+ * compatibility although there is one of the nsec implementations.
+ */
+#if    defined(HAVE_ST_SPARE1) && !defined(_FOUND_STAT_NSECS_)
+
+/*
+ * Found e.g. on SunOS-4.x and HP-UX.
+ */
+#define        stat_ansecs(s)          ((s)->st_spare1 * 1000)
+#define        stat_mnsecs(s)          ((s)->st_spare2 * 1000)
+#define        stat_cnsecs(s)          ((s)->st_spare3 * 1000)
+
+#define        stat_set_ansecs(s, n)   ((s)->st_spare1 = n / 1000)
+#define        stat_set_mnsecs(s, n)   ((s)->st_spare2 = n / 1000)
+#define        stat_set_cnsecs(s, n)   ((s)->st_spare3 = n / 1000)
+
+#define        _FOUND_STAT_USECS_
+#define        _FOUND_STAT_NSECS_
+#endif
+
+#if    !defined(_FOUND_STAT_NSECS_)
+#define        stat_ansecs(s)          (0)
+#define        stat_mnsecs(s)          (0)
+#define        stat_cnsecs(s)          (0)
+
+#define        stat_set_ansecs(s, n)   (0)
+#define        stat_set_mnsecs(s, n)   (0)
+#define        stat_set_cnsecs(s, n)   (0)
+#endif
+
+#endif /* _SCHILY_STAT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdint.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdint.h
new file mode 100644 (file)
index 0000000..0fdf9ac
--- /dev/null
@@ -0,0 +1,488 @@
+/* @(#)stdint.h        1.37 15/12/10 Copyright 1997-2015 J. Schilling */
+/*
+ *     Abstraction from stdint.h
+ *
+ *     Copyright (c) 1997-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_STDINT_H
+#define        _SCHILY_STDINT_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * Let us include system defined types too.
+ */
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+/*
+ * Include sys/param.h for NBBY - needed in case that CHAR_BIT is missing
+ */
+#ifndef        _SCHILY_PARAM_H
+#include <schily/param.h>      /* Must be before limits.h */
+#endif
+
+/*
+ * Include limits.h for CHAR_BIT - needed by TYPE_MINVAL(t) and  TYPE_MAXVAL(t)
+ */
+#ifndef        _SCHILY_LIMITS_H
+#include <schily/limits.h>
+#endif
+
+#ifndef        CHAR_BIT
+#ifdef NBBY
+#define        CHAR_BIT        NBBY
+#endif
+#endif
+
+/*
+ * Last resort: define CHAR_BIT by hand
+ */
+#ifndef        CHAR_BIT
+#define        CHAR_BIT        8
+#endif
+
+/*
+ * These macros may not work on all platforms but as we depend
+ * on two's complement in many places, they do not reduce portability.
+ * The macros below work with 2s complement and ones complement machines.
+ * Verify with this table...
+ *
+ *     Bits    1's c.  2's complement.
+ *     100     -3      -4
+ *     101     -2      -3
+ *     110     -1      -2
+ *     111     -0      -1
+ *     000     +0       0
+ *     001     +1      +1
+ *     010     +2      +2
+ *     011     +3      +3
+ *
+ * Computing -TYPE_MINVAL(type) will not work on 2's complement machines
+ * if 'type' is int or more. Use:
+ *             ((unsigned type)(-1 * (TYPE_MINVAL(type)+1))) + 1;
+ * it works for both 1's complement and 2's complement machines.
+ */
+#define        TYPE_ISSIGNED(t)        (((t)-1) < ((t)0))
+#define        TYPE_ISUNSIGNED(t)      (!TYPE_ISSIGNED(t))
+#define        TYPE_MSBVAL(t)          ((t)(~((t)0) << (sizeof (t)*CHAR_BIT - 1)))
+#define        TYPE_MINVAL(t)          (TYPE_ISSIGNED(t)                       \
+                                   ? TYPE_MSBVAL(t)                    \
+                                   : ((t)0))
+#define        TYPE_MAXVAL(t)          ((t)(~((t)0) - TYPE_MINVAL(t)))
+
+/*
+ * MSVC has size_t in stddef.h
+ */
+#ifdef HAVE_STDDEF_H
+#ifndef        _INCL_STDDEF_H
+#include <stddef.h>
+#define        _INCL_STDDEF_H
+#endif
+#endif
+
+/*
+ * CHAR_IS_UNSIGNED is needed to define int8_t
+ */
+#ifdef __CHAR_UNSIGNED__       /* GNU GCC define (dynamic)     */
+#ifndef CHAR_IS_UNSIGNED
+#define        CHAR_IS_UNSIGNED        /* Sing Schily define (static)  */
+#endif
+#endif
+
+/*
+ * This is a definition for a compiler dependant 64 bit type.
+ * There is currently a silently fallback to a long if the compiler does not
+ * support it. Check if this is the right way.
+ *
+ * Be very careful here as MSVC does not implement long long but rather __int64
+ * and once someone makes 'long long' 128 bits on a 64 bit machine, we need to
+ * check for a MSVC __int128 type.
+ */
+#ifndef        NO_LONGLONG
+#      if      !defined(USE_LONGLONG) && defined(HAVE_LONGLONG)
+#              define  USE_LONGLONG
+#      endif
+#      if      !defined(USE_LONGLONG) && defined(HAVE___INT64)
+#              define  USE_LONGLONG
+#      endif
+#endif
+
+#ifdef USE_LONGLONG
+
+#      if      defined(HAVE___INT64)
+
+typedef        __int64                 Llong;
+typedef        unsigned __int64        Ullong; /* We should avoid this */
+typedef        unsigned __int64        ULlong;
+
+#define        SIZEOF_LLONG            SIZEOF___INT64
+#define        SIZEOF_ULLONG           SIZEOF_UNSIGNED___INT64
+
+#      else    /* We must have HAVE_LONG_LONG */
+
+typedef        long long               Llong;
+typedef        unsigned long long      Ullong; /* We should avoid this */
+typedef        unsigned long long      ULlong;
+
+#define        SIZEOF_LLONG            SIZEOF_LONG_LONG
+#define        SIZEOF_ULLONG           SIZEOF_UNSIGNED_LONG_LONG
+
+#      endif   /* HAVE___INT64 / HAVE_LONG_LONG */
+
+#else  /* !USE_LONGLONG */
+
+typedef        long                    Llong;
+typedef        unsigned long           Ullong; /* We should avoid this */
+typedef        unsigned long           ULlong;
+
+#define        SIZEOF_LLONG            SIZEOF_LONG
+#define        SIZEOF_ULLONG           SIZEOF_UNSIGNED_LONG
+
+#endif /* USE_LONGLONG */
+
+#ifndef        LLONG_MIN
+#define        LLONG_MIN       TYPE_MINVAL(Llong)
+#endif
+#ifndef        LLONG_MAX
+#define        LLONG_MAX       TYPE_MAXVAL(Llong)
+#endif
+#ifndef        ULLONG_MAX
+#define        ULLONG_MAX      TYPE_MAXVAL(Ullong)
+#endif
+
+/*
+ * Start inttypes.h emulation.
+ *
+ * Thanks to Solaris 2.4 and even recent 1999 Linux versions, we
+ * cannot use the official UNIX-98 names here. Old Solaris versions
+ * define parts of the types in some exotic include files.
+ * Linux even defines incompatible types in <sys/types.h>.
+ */
+
+#if defined(HAVE_INTTYPES_H) || defined(HAVE_STDINT_H)
+#if defined(HAVE_INTTYPES_H)
+#      ifndef  _INCL_INTTYPES_H
+#      include <inttypes.h>
+#      define  _INCL_INTTYPES_H
+#      endif
+#else
+#if defined(HAVE_STDINT_H)
+#      ifndef  _INCL_STDINT_H
+#      include <stdint.h>
+#      define  _INCL_STDINT_H
+#      endif
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * On VMS on VAX, these types are present but non-scalar.
+ * Thus we may not be able to use them
+ */
+#ifdef HAVE_LONGLONG
+#      define  HAVE_INT64_T
+#      define  HAVE_UINT64_T
+#endif
+
+#define        Int8_t                  int8_t
+#define        Int16_t                 int16_t
+#define        Int32_t                 int32_t
+#ifdef HAVE_LONGLONG
+#define        Int64_t                 int64_t
+#endif
+#define        Intmax_t                intmax_t
+#define        UInt8_t                 uint8_t
+#define        UInt16_t                uint16_t
+#define        UInt32_t                uint32_t
+#ifdef HAVE_LONGLONG
+#define        UInt64_t                uint64_t
+#endif
+#define        UIntmax_t               uintmax_t
+
+#define        Intptr_t                intptr_t
+#define        UIntptr_t               uintptr_t
+
+/*
+ * If we only have a UNIX-98 inttypes.h but no SUSv3
+ *
+ * Beware not to use int64_t / uint64_t as VMS on a VAX defines
+ * them as non-scalar (structure) based types.
+ */
+#ifndef        HAVE_TYPE_INTMAX_T
+#define        intmax_t        Llong
+#endif
+#ifndef        HAVE_TYPE_UINTMAX_T
+#define        uintmax_t       ULlong
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#else  /* !HAVE_INTTYPES_H */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if SIZEOF_CHAR != 1 || SIZEOF_UNSIGNED_CHAR != 1
+/*
+ * #error will not work for all compilers (e.g. sunos4)
+ * The following line will abort compilation on all compilers
+ * if the above is true. And that's what we want.
+ */
+error  Sizeof char is not equal 1
+
+#include <schily/err_char.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#if    defined(__STDC__) || defined(CHAR_IS_UNSIGNED)
+       typedef signed char             Int8_t;
+#else
+       typedef char                    Int8_t;
+#endif
+
+#if SIZEOF_SHORT_INT == 2
+       typedef short                   Int16_t;
+#else
+       error           No int16_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#if SIZEOF_INT == 4
+#if defined(_MSC_VER) && SIZEOF_LONG_INT == 4
+       typedef long                    Int32_t;
+#else
+       typedef int                     Int32_t;
+#endif
+#else
+       error           No int32_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#if SIZEOF_LONG_INT == 8
+       typedef         long            Int64_t;
+#      define  HAVE_INT64_T
+#else
+#if SIZEOF_LONG_LONG == 8
+       typedef         long long       Int64_t;
+#      define  HAVE_INT64_T
+#else
+#if SIZEOF___INT64 == 8
+       typedef         __int64         Int64_t;
+#      define  HAVE_INT64_T
+#else
+/*
+ * Tolerate platforms without 64-Bit support.
+ */
+/*     error           No int64_t found */
+#endif
+#endif
+#endif
+
+#if SIZEOF_CHAR_P == SIZEOF_INT
+       typedef         int             Intptr_t;
+#else
+#if SIZEOF_CHAR_P == SIZEOF_LONG_INT
+       typedef         long            Intptr_t;
+#else
+#if SIZEOF_CHAR_P == SIZEOF_LLONG
+       typedef         Llong           Intptr_t;
+#else
+       error           No intptr_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+#endif
+#endif
+
+typedef        unsigned char           UInt8_t;
+
+#if SIZEOF_UNSIGNED_SHORT_INT == 2
+       typedef unsigned short          UInt16_t;
+#else
+       error           No uint16_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#if SIZEOF_UNSIGNED_INT == 4
+#if defined(_MSC_VER) && SIZEOF_UNSIGNED_LONG_INT == 4
+       typedef unsigned long           UInt32_t;
+#else
+       typedef unsigned int            UInt32_t;
+#endif
+#else
+       error           No int32_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#if SIZEOF_UNSIGNED_LONG_INT == 8
+       typedef unsigned long           UInt64_t;
+#      define  HAVE_UINT64_T
+#else
+#if SIZEOF_UNSIGNED_LONG_LONG == 8
+       typedef unsigned long long      UInt64_t;
+#      define  HAVE_UINT64_T
+#else
+#if SIZEOF_UNSIGNED___INT64 == 8
+       typedef unsigned __int64        UInt64_t;
+#      define  HAVE_UINT64_T
+#else
+/*
+ * Tolerate platforms without 64-Bit support.
+ */
+/*     error           No uint64_t found */
+#endif
+#endif
+#endif
+
+#define        Intmax_t        Llong
+#define        UIntmax_t       Ullong
+
+#if SIZEOF_CHAR_P == SIZEOF_UNSIGNED_INT
+       typedef         unsigned int    UIntptr_t;
+#else
+#if SIZEOF_CHAR_P == SIZEOF_UNSIGNED_LONG_INT
+       typedef         unsigned long   UIntptr_t;
+#else
+#if SIZEOF_CHAR_P == SIZEOF_ULLONG
+       typedef         ULlong          UIntptr_t;
+#else
+       error           No uintptr_t found
+
+#include <schily/err_type.h>   /* Avoid "unknown directive" with K&R */
+#endif
+#endif
+#endif
+
+#ifdef _MSC_VER
+/*
+ * All recent platforms define the POSIX/C-99 compliant types from inttypes.h
+ * except Microsoft. With these #defines, we may also use official types on a
+ * Microsoft environment.
+ *
+ * Warning: Linux-2.2 and before do not have inttypes.h and define some of the
+ * types in an incmpatible way.
+ */
+#undef int8_t
+#define        int8_t                  Int8_t
+#undef int16_t
+#define        int16_t                 Int16_t
+#undef int32_t
+#define        int32_t                 Int32_t
+#undef int64_t
+#define        int64_t                 Int64_t
+#undef intmax_t
+#define        intmax_t                Intmax_t
+#undef uint8_t
+#define        uint8_t                 UInt8_t
+#undef uint16_t
+#define        uint16_t                UInt16_t
+#undef uint32_t
+#define        uint32_t                UInt32_t
+#undef uint64_t
+#define        uint64_t                UInt64_t
+#undef uintmax_t
+#define        uintmax_t               UIntmax_t
+
+#undef intptr_t
+#define        intptr_t                Intptr_t
+#undef uintptr_t
+#define        uintptr_t               UIntptr_t
+#endif /* _MSC_VER */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAVE_INTTYPES_H */
+
+#ifndef        INT8_MIN
+#define        INT8_MIN        TYPE_MINVAL(Int8_t)
+#endif
+#ifndef        INT8_MAX
+#define        INT8_MAX        TYPE_MAXVAL(Int8_t)
+#endif
+#ifndef        UINT8_MAX
+#define        UINT8_MAX       TYPE_MAXVAL(UInt8_t)
+#endif
+
+#ifndef        INT16_MIN
+#define        INT16_MIN       TYPE_MINVAL(Int16_t)
+#endif
+#ifndef        INT16_MAX
+#define        INT16_MAX       TYPE_MAXVAL(Int16_t)
+#endif
+#ifndef        UINT16_MAX
+#define        UINT16_MAX      TYPE_MAXVAL(UInt16_t)
+#endif
+
+#ifndef        INT32_MIN
+#define        INT32_MIN       TYPE_MINVAL(Int32_t)
+#endif
+#ifndef        INT32_MAX
+#define        INT32_MAX       TYPE_MAXVAL(Int32_t)
+#endif
+#ifndef        UINT32_MAX
+#define        UINT32_MAX      TYPE_MAXVAL(UInt32_t)
+#endif
+
+#ifdef HAVE_INT64_T
+#ifndef        INT64_MIN
+#define        INT64_MIN       TYPE_MINVAL(Int64_t)
+#endif
+#ifndef        INT64_MAX
+#define        INT64_MAX       TYPE_MAXVAL(Int64_t)
+#endif
+#endif
+#ifdef HAVE_UINT64_T
+#ifndef        UINT64_MAX
+#define        UINT64_MAX      TYPE_MAXVAL(UInt64_t)
+#endif
+#endif
+
+#ifndef        INTMAX_MIN
+#define        INTMAX_MIN      TYPE_MINVAL(Intmax_t)
+#endif
+#ifndef        INTMAX_MAX
+#define        INTMAX_MAX      TYPE_MAXVAL(Intmax_t)
+#endif
+#ifndef        UINTMAX_MAX
+#define        UINTMAX_MAX     TYPE_MAXVAL(UIntmax_t)
+#endif
+
+#define        SIZE_T_MIN      TYPE_MINVAL(size_t)
+#ifdef SIZE_T_MAX
+#undef SIZE_T_MAX                      /* FreeBSD has a similar #define */
+#endif
+#define        SIZE_T_MAX      TYPE_MAXVAL(size_t)
+
+#define        SSIZE_T_MIN     TYPE_MINVAL(ssize_t)
+#define        SSIZE_T_MAX     TYPE_MAXVAL(ssize_t)
+
+#endif /* _SCHILY_STDINT_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdio.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdio.h
new file mode 100644 (file)
index 0000000..cb1b6a6
--- /dev/null
@@ -0,0 +1,124 @@
+/* @(#)stdio.h 1.12 16/09/11 Copyright 2009-2016 J. Schilling */
+/*
+ *     Abstraction from stdio.h
+ *
+ *     Copyright (c) 2009-2016 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_STDIO_H
+#define        _SCHILY_STDIO_H
+#ifndef NO_SCHILY_STDIO_H      /* We #undef _SCHILY_STDIO_H later because */
+                               /* of the ill designed "hdrchk" program    */
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef INCL_MYSTDIO
+#ifndef _INCL_MYSTDIO_H
+#include <mystdio.h>
+#define        _INCL_MYSTDIO_H
+#endif
+
+#else  /* INCL_MYSTDIO */
+
+#ifndef _INCL_STDIO_H
+#include <stdio.h>
+#define        _INCL_STDIO_H
+#endif
+#endif /* INCL_MYSTDIO */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef HAVE_LARGEFILES
+/*
+ * If HAVE_LARGEFILES is defined, it is guaranteed that fseeko()/ftello()
+ * both are available.
+ */
+#define        fseek   fseeko
+#define        ftell   ftello
+#else  /* !HAVE_LARGEFILES */
+
+/*
+ * If HAVE_LARGEFILES is not defined, we depend on specific tests for
+ * fseeko()/ftello() which must have been done before the tests for
+ * Large File support have been done.
+ * Note that this only works if the tests used below are really done before
+ * the Large File autoconf test is run. This is because autoconf does no
+ * clean testing but instead cumulatively modifes the envivonment used for
+ * testing.
+ */
+#ifdef HAVE_FSEEKO
+#      define  fseek   fseeko
+#endif
+#ifdef HAVE_FTELLO
+#      define  ftell   ftello
+#endif
+#endif
+
+#if    !defined(HAVE_POPEN) && defined(HAVE__POPEN)
+#define        popen(c, m)     _popen((c), (m))
+#endif
+
+#if    !defined(HAVE_PCLOSE) && defined(HAVE__PCLOSE)
+#define        pclose(fp)      _pclose(fp)
+#endif
+
+#ifdef FAST_GETC_PUTC
+/*
+ * The following code partially allows libschily to access FILE * as fast as
+ * from inside libc on Solaris.
+ * This makes it possible to implement js_printf() from libschily aprox.
+ * 33% faster than printf() from libc on Solaris. To do this, we
+ * partially unhide the FILE structure in a 64 bit environment on Solaris
+ * to allow to run putc_unlocked() as a marcro.
+ *
+ * If you believe you can do this on onther platforms, send a note.
+ */
+#if    defined(__SVR4) && defined(__sun) && defined(_LP64)
+
+/*
+ * This is how the 64 bit FILE * begins on Solaris.
+ */
+struct SCHILY__FILE_TAG {
+       unsigned char   *_ptr;  /* next character from/to here in buffer */
+       unsigned char   *_base; /* the buffer */
+       unsigned char   *_end;  /* the end of the buffer */
+       ssize_t         _cnt;   /* number of available characters in buffer */
+};
+
+#define        __putc_unlocked(x, p)   (--(p)->_cnt < 0 \
+                                       ? __flsbuf((x), (FILE *)(p)) \
+                                       : (int)(*(p)->_ptr++ = \
+                                       (unsigned char) (x)))
+
+#define        putc_unlocked(x, p)     __putc_unlocked(x, (struct SCHILY__FILE_TAG *)p)
+
+extern int     __flsbuf __PR((int, FILE *));
+
+#endif /* defined(__SVR4) && defined(__sun) && defined(_LP64) */
+#endif /* FAST_GETC_PUTC */
+
+#ifdef __cplusplus
+}
+#endif
+
+#else  /* !NO_SCHILY_STDIO_H */
+#undef _SCHILY_STDIO_H                 /* #undef here to pass "hdrchk" */
+#endif /* NO_SCHILY_STDIO_H */
+#endif /* _SCHILY_STDIO_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdlib.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/stdlib.h
new file mode 100644 (file)
index 0000000..9981373
--- /dev/null
@@ -0,0 +1,72 @@
+/* @(#)stdlib.h        1.11 15/11/28 Copyright 1996-2015 J. Schilling */
+/*
+ *     Definitions for stdlib
+ *
+ *     Copyright (c) 1996-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_STDLIB_H
+#define        _SCHILY_STDLIB_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#ifndef        _INCL_STDLIB_H
+#include <stdlib.h>
+#define        _INCL_STDLIB_H
+#endif
+#endif /* HAVE_STDLIB_H */
+
+
+#ifdef HAVE_POSIX_MALLOC_H     /* Haiku */
+#ifndef        _INCL_POSIX_MALLOC_H
+#include <posix/malloc.h>
+#define        _INCL_POSIX_MALLOC_H
+#endif
+#endif /* HAVE_POSIX_MALLOC_H */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(_INCL_STDLIB_H) && !defined(_INCL_POSIX_MALLOC_H)
+extern char    *malloc();
+extern char    *realloc();
+#endif
+
+#ifndef        _INCL_STDLIB_H
+extern double  atof();
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+#ifndef        EXIT_FAILURE
+#define        EXIT_FAILURE    1
+#endif
+#ifndef        EXIT_SUCCESS
+#define        EXIT_SUCCESS    0
+#endif
+#ifndef        RAND_MAX
+#define        RAND_MAX        32767
+#endif
+
+#endif /* _SCHILY_STDLIB_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/string.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/string.h
new file mode 100644 (file)
index 0000000..08b51b6
--- /dev/null
@@ -0,0 +1,108 @@
+/* @(#)string.h        1.12 11/11/24 Copyright 1996-2011 J. Schilling */
+/*
+ *     Definitions for strings
+ *
+ *     Copyright (c) 1996-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_STRING_H
+#define        _SCHILY_STRING_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>              /* Try to get size_t */
+#endif
+
+/*
+ * It may be that IBM's AIX has problems when doing
+ * #include <string.h>
+ * #include <strings.h>
+ * So I moved the #include <strings.h> to the top. As the file strings.h
+ * defines strcasecmp() we may need it...
+ *
+ * Note that the only real problem appears if we use rubbish FSF based code that
+ * #defines _NO_PROTO
+ */
+#ifdef HAVE_STRINGS_H
+#ifndef        _INCL_STRINGS_H
+#include <strings.h>
+#define        _INCL_STRINGS_H
+#endif
+#endif /* HAVE_STRINGS_H */
+
+
+#ifdef HAVE_STRING_H
+#ifndef        _INCL_STRING_H
+#include <string.h>
+#define        _INCL_STRING_H
+#endif
+#else  /* HAVE_STRING_H */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef NULL
+#define        NULL    0
+#endif
+
+extern void *memcpy    __PR((void *, const void *, int));
+extern void *memmove   __PR((void *, const void *, int));
+extern char *strcpy    __PR((char *, const char *));
+extern char *strncpy   __PR((char *, const char *, int));
+
+extern char *strcat    __PR((char *, const char *));
+extern char *strncat   __PR((char *, const char *, int));
+
+extern int memcmp      __PR((const void *, const void *, int));
+extern int strcmp      __PR((const char *, const char *));
+extern int strcoll     __PR((const char *, const char *));
+extern int strncmp     __PR((const char *, const char *, int));
+extern int strxfrm     __PR((char *, const char *, int));
+
+extern void *memchr    __PR((const void *, int, int));
+extern char *strchr    __PR((const char *, int));
+
+extern int strcspn     __PR((const char *, const char *));
+/* #pragma int_to_unsigned strcspn */
+
+extern char *strpbrk   __PR((const char *, const char *));
+extern char *strrchr   __PR((const char *, int));
+
+extern int strspn      __PR((const char *, const char *));
+/* #pragma int_to_unsigned strspn */
+
+extern char *strstr    __PR((const char *, const char *));
+extern char *strtok    __PR((char *, const char *));
+extern void *memset    __PR((void *, int, int));
+extern char *strerror  __PR((int));
+
+extern int strlen      __PR((const char *));
+/* #pragma int_to_unsigned strlen */
+
+extern void *memccpy   __PR((void *, const void *, int, int));
+
+extern int strcasecmp  __PR((const char *, const char *));
+extern int strncasecmp __PR((const char *, const char *, size_t));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAVE_STRING_H */
+
+#endif /* _SCHILY_STRING_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/time.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/time.h
new file mode 100644 (file)
index 0000000..3218235
--- /dev/null
@@ -0,0 +1,164 @@
+/* @(#)time.h  1.20 13/10/01 Copyright 1996-2013 J. Schilling */
+/*
+ *     Generic header for users of time(), gettimeofday() ...
+ *
+ *     It includes definitions for time_t, struct timeval, ...
+ *
+ *     Copyright (c) 1996-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_TIME_H
+#define        _SCHILY_TIME_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>      /* Needed for time_t            */
+#endif
+
+#ifdef TIME_WITH_SYS_TIME
+#      ifndef  _INCL_SYS_TIME_H
+#      include <sys/time.h>
+#      define  _INCL_SYS_TIME_H
+#      endif
+#      ifndef  _INCL_TIME_H
+#      include <time.h>
+#      define  _INCL_TIME_H
+#      endif
+#else
+#ifdef HAVE_SYS_TIME_H
+#      ifndef  _INCL_SYS_TIME_H
+#      include <sys/time.h>
+#      define  _INCL_SYS_TIME_H
+#      endif
+#else
+#      ifndef  _INCL_TIME_H
+#      include <time.h>
+#      define  _INCL_TIME_H
+#      endif
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef timerclear
+/*
+ * With MSVC timerclear / struct timeval present in case that
+ * winsock2.h has been included before.
+ */
+#undef HAVE_STRUCT_TIMEVAL
+#define        HAVE_STRUCT_TIMEVAL     1
+#endif
+
+#ifndef        HAVE_STRUCT_TIMEVAL
+
+struct timeval {
+       long    tv_sec;
+       long    tv_usec;
+};
+#endif
+
+#ifndef        HAVE_STRUCT_TIMEZONE
+
+struct timezone {
+       int     tz_minuteswest;
+       int     tz_dsttime;
+};
+#endif
+
+#ifndef        HAVE_STRUCT_TIMESPEC
+
+struct timespec {
+       time_t  tv_sec;
+       long    tv_nsec;
+};
+#endif
+
+
+#undef timerclear
+#define        timerclear(tvp)         (tvp)->tv_sec = (tvp)->tv_usec = 0
+
+#undef timerfix
+#define        timerfix1(tvp)          while ((tvp)->tv_usec < 0) {            \
+                                       (tvp)->tv_sec--;                \
+                                       (tvp)->tv_usec += 1000000;      \
+                               }
+
+#define        timerfix2(tvp)          while ((tvp)->tv_usec > 1000000) {      \
+                                       (tvp)->tv_sec++;                \
+                                       (tvp)->tv_usec -= 1000000;      \
+                               }
+
+#define        timerfix(tvp)           do { timerfix1(tvp); timerfix2(tvp); } while (0)
+
+/*
+ * timersub() and timeradd() are defined on FreeBSD with a different
+ * interface (3 parameters).
+ */
+#undef timersub
+#define        timersub(tvp1, tvp2)    do {                                    \
+                                       (tvp1)->tv_sec -= (tvp2)->tv_sec; \
+                                       (tvp1)->tv_usec -= (tvp2)->tv_usec; \
+                                       timerfix1(tvp1); timerfix2(tvp1); \
+                               } while (0)
+
+#undef timeradd
+#define        timeradd(tvp1, tvp2)    do {                                    \
+                                       (tvp1)->tv_sec += (tvp2)->tv_sec; \
+                                       (tvp1)->tv_usec += (tvp2)->tv_usec; \
+                                       timerfix1(tvp1); timerfix2(tvp1); \
+                               } while (0)
+
+
+#undef timespecclear
+#define        timespecclear(tsp)      (tsp)->tv_sec = (tsp)->tv_nsec = 0
+
+#undef timespecfix
+#define        timespecfix1(tsp)       while ((tsp)->tv_nsec < 0) {            \
+                                       (tsp)->tv_sec--;                \
+                                       (tsp)->tv_nsec += 1000000000;   \
+                               }
+
+#define        timespecfix2(tsp)       while ((tsp)->tv_nsec > 1000000000) {   \
+                                       (tsp)->tv_sec++;                \
+                                       (tsp)->tv_nsec -= 1000000000;   \
+                               }
+
+#define        timespecfix(tsp)        do { timespecfix1(tsp); timespecfix2(tsp); } while (0)
+
+#undef timespecsub
+#define        timespecsub(tsp1, tsp2) do {                                    \
+                                       (tsp1)->tv_sec -= (tsp2)->tv_sec; \
+                                       (tsp1)->tv_nsec -= (tsp2)->tv_nsec; \
+                                       timespecfix1(tsp1); timespecfix2(tsp1); \
+                               } while (0)
+
+#undef timespecadd
+#define        timespecadd(tsp1, tsp2) do {                                    \
+                                       (tsp1)->tv_sec += (tsp2)->tv_sec; \
+                                       (tsp1)->tv_nsec += (tsp2)->tv_nsec; \
+                                       timespecfix1(tsp1); timespecfix2(tsp1); \
+                               } while (0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_TIME_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/types.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/types.h
new file mode 100644 (file)
index 0000000..5331d50
--- /dev/null
@@ -0,0 +1,47 @@
+/* @(#)types.h 1.5 09/10/22 Copyright 2006-2009 J. Schilling */
+/*
+ *     Abstraction from sys/types.h
+ *
+ *     Copyright (c) 2006-2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_TYPES_H
+#define        _SCHILY_TYPES_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+#ifndef        _INCL_SYS_TYPES_H
+#include <sys/types.h>
+#define        _INCL_SYS_TYPES_H
+#endif
+#else
+#ifdef HAVE_TYPES_H
+#ifndef        _INCL_TYPES_H
+#include <types.h>
+#define        _INCL_TYPES_H
+#endif
+#endif
+#endif
+
+#ifdef HAVE_STDDEF_H
+#ifndef        _INCL_STDDEF_H
+#include <stddef.h>            /* For offsetof(), ptrdiff_t, wchar_t, size_t */
+#define        _INCL_STDDEF_H
+#endif
+#endif
+
+#endif /* _SCHILY_TYPES_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/unistd.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/unistd.h
new file mode 100644 (file)
index 0000000..46d2e3b
--- /dev/null
@@ -0,0 +1,183 @@
+/* @(#)unistd.h        1.27 14/06/19 Copyright 1996-2014 J. Schilling */
+/*
+ *     Definitions for unix system interface
+ *
+ *     Copyright (c) 1996-2014 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_UNISTD_H
+#define        _SCHILY_UNISTD_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * unistd.h grants things like off_t to be typedef'd.
+ */
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+
+/*
+ * inttypes.h grants things like Intptr_t to be typedef'd.
+ */
+#ifndef        _SCHILY_INTTYPES_H
+#include <schily/inttypes.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+
+#ifndef        _INCL_UNISTD_H
+#include <unistd.h>
+#define        _INCL_UNISTD_H
+#endif
+
+#ifndef        _SC_PAGESIZE
+#ifdef _SC_PAGE_SIZE   /* HP/UX & OSF */
+#define        _SC_PAGESIZE    _SC_PAGE_SIZE
+#endif
+#endif
+
+#else  /* !HAVE_UNISTD_H */
+#ifndef        _SCHILY_STDLIB_H
+#include <schily/stdlib.h>     /* MSVC: no unistd.h environ is in stdlib.h */
+#endif
+#endif /* !HAVE_UNISTD_H */
+
+/*
+ * MSVC has getcwd()/chdir()/mkdir()/rmdir() in direct.h
+ */
+#if defined(_MSC_VER) && defined(HAVE_DIRECT_H)
+#ifndef        _INCL_DIRECT_H
+#include <direct.h>
+#define        _INCL_DIRECT_H
+#endif
+#endif
+
+/*
+ * MSVC has size_t in stddef.h
+ */
+#ifdef HAVE_STDDEF_H
+#ifndef        _INCL_STDDEF_H
+#include <stddef.h>
+#define        _INCL_STDDEF_H
+#endif
+#endif
+
+#ifndef        STDIN_FILENO
+#      ifdef   JOS
+#              ifndef  _SCHILY_JOS_IO_H
+#              include <schily/jos_io.h>
+#              endif
+#      else
+#              define  STDIN_FILENO    0
+#              define  STDOUT_FILENO   1
+#              define  STDERR_FILENO   2
+#      endif
+#endif
+
+#ifndef        R_OK
+/* Symbolic constants for the "access" routine: */
+#define        R_OK    4       /* Test for Read permission */
+#define        W_OK    2       /* Test for Write permission */
+#define        X_OK    1       /* Test for eXecute permission */
+#define        F_OK    0       /* Test for existence of File */
+#endif
+#ifndef        E_OK
+#ifdef HAVE_ACCESS_E_OK
+#ifdef EFF_ONLY_OK
+#define        E_OK    EFF_ONLY_OK /* Irix */
+#else
+#ifdef EUID_OK
+#define        E_OK    EUID_OK /* UNICOS (0400) */
+#else
+#define        E_OK    010     /* Test effective uids */
+#endif /* EUID_OK */
+#endif /* EFF_ONLY_OK */
+#else
+#define        E_OK    0
+#endif /* HAVE_ACCESS_E_OK */
+#endif /* !E_OK */
+
+/* Symbolic constants for the "lseek" routine: */
+#ifndef        SEEK_SET
+#define        SEEK_SET        0       /* Set file pointer to "offset" */
+#endif
+#ifndef        SEEK_CUR
+#define        SEEK_CUR        1       /* Set file pointer to current plus "offset" */
+#endif
+#ifndef        SEEK_END
+#define        SEEK_END        2       /* Set file pointer to EOF plus "offset" */
+#endif
+
+#ifndef        HAVE_ENVIRON_DEF
+extern char    **environ;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if    !defined(HAVE_UNISTD_H) || !defined(_POSIX_VERSION)
+/*
+ * Maybe we need a lot more definitions here...
+ * It is not clear whether we should have prototyped definitions.
+ */
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+/*
+ * MS C comes with broken prototypes in wrong header files (in our case, the
+ * wrong prototype is in io.h). Avoid to redefine the broken MS stuff with
+ * correct prototypes.
+ */
+extern int     access  __PR((const char *, int));
+extern int     close   __PR((int));
+extern int     dup     __PR((int));
+extern int     dup2    __PR((int, int));
+extern int     link    __PR((const char *, const char *));
+extern int     read    __PR((int, void *, size_t));
+extern int     unlink  __PR((const char *));
+extern int     write   __PR((int, const void *, size_t));
+#endif
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+/*
+ * MS C comes with broken prototypes in wrong header files (in our case, the
+ * wrong prototype is in stdlib.h). Avoid to redefine the broken MS stuff with
+ * correct prototypes.
+ */
+extern void    _exit   __PR((int));
+#endif
+#endif
+
+#if !defined(HAVE_PIPE) && defined(HAVE__PIPE) && defined(HAVE_IO_H)
+#ifndef        _SCHILY_LIMITS_H
+#include <schily/limits.h>     /* for PIPE_BUF */
+#endif
+#ifndef        _SCHILY_FCNTL_H
+#include <schily/fcntl.h>      /* for O_BINARY */
+#endif
+#ifndef        _SCHILY_IO_H
+#include <schily/io.h>         /* for _pipe() */
+#endif
+
+#define        pipe(pp)        _pipe(pp, PIPE_BUF, O_BINARY)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_UNISTD_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/utypes.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/utypes.h
new file mode 100644 (file)
index 0000000..d723d95
--- /dev/null
@@ -0,0 +1,158 @@
+/* @(#)utypes.h        1.36 13/09/14 Copyright 1997-2013 J. Schilling */
+/*
+ *     Definitions for some user defined types
+ *
+ *     Copyright (c) 1997-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_UTYPES_H
+#define        _SCHILY_UTYPES_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+/*
+ * uypes.h is based on inttypes.h
+ */
+#ifndef        _SCHILY_INTTYPES_H
+#include <schily/inttypes.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Several unsigned cardinal types
+ */
+typedef        unsigned long   Ulong;
+typedef        unsigned int    Uint;
+typedef        unsigned short  Ushort;
+typedef        unsigned char   Uchar;
+
+/*
+ * The IBM AIX C-compiler seems to be the only compiler on the world
+ * which does not allow to use unsigned char bit fields as a hint
+ * for packed bit fields. Define a pesical type to avoid warnings.
+ * The packed attribute is honored wit unsigned int in this case too.
+ */
+#if    defined(_AIX) && !defined(__GNUC__)
+
+typedef unsigned int   Ucbit;
+
+#else
+
+typedef unsigned char  Ucbit;
+
+#endif
+
+#ifndef        CHAR_MIN
+#define        CHAR_MIN        TYPE_MINVAL(char)
+#endif
+#ifndef        CHAR_MAX
+#define        CHAR_MAX        TYPE_MAXVAL(char)
+#endif
+#ifndef        UCHAR_MAX
+#define        UCHAR_MAX       TYPE_MAXVAL(unsigned char)
+#endif
+
+#ifndef        SHRT_MIN
+#define        SHRT_MIN        TYPE_MINVAL(short)
+#endif
+#ifndef        SHRT_MAX
+#define        SHRT_MAX        TYPE_MAXVAL(short)
+#endif
+#ifndef        USHRT_MAX
+#define        USHRT_MAX       TYPE_MAXVAL(unsigned short)
+#endif
+
+#ifndef        INT_MIN
+#define        INT_MIN         TYPE_MINVAL(int)
+#endif
+#ifndef        INT_MAX
+#define        INT_MAX         TYPE_MAXVAL(int)
+#endif
+#ifndef        UINT_MAX
+#define        UINT_MAX        TYPE_MAXVAL(unsigned int)
+#endif
+
+#ifndef        LONG_MIN
+#define        LONG_MIN        TYPE_MINVAL(long)
+#endif
+#ifndef        LONG_MAX
+#define        LONG_MAX        TYPE_MAXVAL(long)
+#endif
+#ifndef        ULONG_MAX
+#define        ULONG_MAX       TYPE_MAXVAL(unsigned long)
+#endif
+
+#define        OFF_T_MIN       TYPE_MINVAL(off_t)
+#define        OFF_T_MAX       TYPE_MAXVAL(off_t)
+
+#define        UID_T_MIN       TYPE_MINVAL(uid_t)
+#define        UID_T_MAX       TYPE_MAXVAL(uid_t)
+
+#define        GID_T_MIN       TYPE_MINVAL(gid_t)
+#define        GID_T_MAX       TYPE_MAXVAL(gid_t)
+
+#define        PID_T_MIN       TYPE_MINVAL(pid_t)
+#define        PID_T_MAX       TYPE_MAXVAL(pid_t)
+
+#define        MODE_T_MIN      TYPE_MINVAL(mode_t)
+#define        MODE_T_MAX      TYPE_MAXVAL(mode_t)
+
+#define        TIME_T_MIN      TYPE_MINVAL(time_t)
+#define        TIME_T_MAX      TYPE_MAXVAL(time_t)
+
+#define        CADDR_T_MIN     TYPE_MINVAL(caddr_t)
+#define        CADDR_T_MAX     TYPE_MAXVAL(caddr_t)
+
+#define        DADDR_T_MIN     TYPE_MINVAL(daddr_t)
+#define        DADDR_T_MAX     TYPE_MAXVAL(daddr_t)
+
+#define        DEV_T_MIN       TYPE_MINVAL(dev_t)
+#define        DEV_T_MAX       TYPE_MAXVAL(dev_t)
+
+#define        MAJOR_T_MIN     TYPE_MINVAL(major_t)
+#define        MAJOR_T_MAX     TYPE_MAXVAL(major_t)
+
+#define        MINOR_T_MIN     TYPE_MINVAL(minor_t)
+#define        MINOR_T_MAX     TYPE_MAXVAL(minor_t)
+
+#define        INO_T_MIN       TYPE_MINVAL(ino_t)
+#define        INO_T_MAX       TYPE_MAXVAL(ino_t)
+
+#define        NLINK_T_MIN     TYPE_MINVAL(nlink_t)
+#define        NLINK_T_MAX     TYPE_MAXVAL(nlink_t)
+
+#define        BLKSIZE_T_MIN   TYPE_MINVAL(blksize_t)
+#define        BLKSIZE_T_MAX   TYPE_MAXVAL(blksize_t)
+
+#define        BLKCNT_T_MIN    TYPE_MINVAL(blkcnt_t)
+#define        BLKCNT_T_MAX    TYPE_MAXVAL(blkcnt_t)
+
+#define        CLOCK_T_MIN     TYPE_MINVAL(clock_t)
+#define        CLOCK_T_MAX     TYPE_MAXVAL(clock_t)
+
+#define        SOCKLEN_T_MIN   TYPE_MINVAL(socklen_t)
+#define        SOCKLEN_T_MAX   TYPE_MAXVAL(socklen_t)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_UTYPES_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/varargs.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/varargs.h
new file mode 100644 (file)
index 0000000..e261818
--- /dev/null
@@ -0,0 +1,140 @@
+/* @(#)varargs.h       1.8 14/01/06 Copyright 1998-2014 J. Schilling */
+/*
+ *     Generic header for users of var args ...
+ *
+ *     Includes a default definition for va_copy()
+ *     and some magic know how about the SVr4 Power PC var args ABI
+ *     to create a __va_arg_list() macro.
+ *
+ *     The __va_arg_list() macro is needed to fetch a va_list type argument
+ *     from a va_list. This is needed to implement a recursive "%r" printf.
+ *
+ *     Copyright (c) 1998-2014 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef        _SCHILY_VARARGS_H
+#define        _SCHILY_VARARGS_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef PROTOTYPES
+/*
+ * For ANSI C-compilers prefer stdarg.h
+ */
+#      ifdef   HAVE_STDARG_H
+#              ifndef  _INCL_STDARG_H
+#              include <stdarg.h>
+#              define  _INCL_STDARG_H
+#              endif
+#      else
+#              ifndef  _INCL_VARARGS_H
+#              include <varargs.h>
+#              define  _INCL_VARARGS_H
+#              endif
+#      endif
+#else
+/*
+ * For K&R C-compilers prefer varargs.h
+ */
+#      ifdef   HAVE_VARARGS_H
+#              ifndef  _INCL_VARARGS_H
+#              include <varargs.h>
+#              define  _INCL_VARARGS_H
+#              endif
+#      else
+#              ifndef  _INCL_STDARG_H
+#              include <stdarg.h>
+#              define  _INCL_STDARG_H
+#              endif
+#      endif
+#endif
+
+#if (defined(__linux__) || defined(__linux) || defined(sun)) && \
+               (defined(__ppc) || defined(__PPC) || \
+               defined(powerpc) || defined(__powerpc__))
+
+#      ifndef  VA_LIST_IS_ARRAY
+#      define  VA_LIST_IS_ARRAY
+#      endif
+#endif
+
+
+/*
+ * __va_copy() is used by GCC 2.8 or newer until va_copy() becomes
+ * a final ISO standard.
+ */
+#if !defined(va_copy) && !defined(HAVE_VA_COPY)
+#      if      defined(__va_copy)
+#              define  va_copy(to, from)       __va_copy(to, from)
+#      endif
+#endif
+
+/*
+ * va_copy() is a Solaris extension to provide a portable way to perform a
+ * variable argument list "bookmarking" function.
+ * If it is not available via stdarg.h, use a simple assignement for backward
+ * compatibility.
+ */
+#if !defined(va_copy) && !defined(HAVE_VA_COPY)
+#ifdef VA_LIST_IS_ARRAY
+#      define  va_copy(to, from)       ((to)[0] = (from)[0])
+#else
+#      define  va_copy(to, from)       ((to) = (from))
+#endif
+#endif
+
+/*
+ * I don't know any portable way to get an arbitrary
+ * C object from a var arg list so I use a
+ * system-specific routine __va_arg_list() that knows
+ * if 'va_list' is an array. You will not be able to
+ * assign the value of __va_arg_list() but it works
+ * to be used as an argument of a function.
+ * It is a requirement for recursive printf to be able
+ * to use this function argument. If your system
+ * defines va_list to be an array you need to know this
+ * via autoconf or another mechanism.
+ * It would be nice to have something like
+ * __va_arg_list() in stdarg.h
+ */
+
+#ifdef VA_LIST_IS_ARRAY
+#      define  __va_arg_list(list)     va_arg(list, void *)
+#else
+#      define  __va_arg_list(list)     va_arg(list, va_list)
+#endif
+
+/*
+ * This structure allows to work around the C limitation that a variable of
+ * type array cannot appear at the left side of an assignement operator.
+ * By putting va_list inside a struture, the assignement will work even in case
+ * that va_list is an array2.
+ */
+typedef struct {
+       va_list ap;
+} va_lists_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_VARARGS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/wchar.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/wchar.h
new file mode 100644 (file)
index 0000000..f27dec5
--- /dev/null
@@ -0,0 +1,180 @@
+/* @(#)wchar.h 1.21 11/07/19 Copyright 2007-2011 J. Schilling */
+/*
+ *     Abstraction from wchar.h
+ *
+ *     Copyright (c) 2007-2011 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_WCHAR_H
+#define        _SCHILY_WCHAR_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_STDLIB_H
+#include <schily/stdlib.h>     /* for MB_CUR_MAX, mbtowc()/wctomb() */
+#endif
+#ifndef        _SCHILY_TYPES_H
+#include <schily/types.h>
+#endif
+#ifdef HAVE_STDDEF_H
+#ifndef        _INCL_STDDEF_H
+#include <stddef.h>            /* Needed for e.g. size_t (POSIX)  */
+#define        _INCL_STDDEF_H
+#endif
+#endif
+#ifndef _SCHILY_STDIO_H
+#include <schily/stdio.h>      /* Needed for e.g. FILE (POSIX)    */
+#endif
+#ifndef        _SCHILY_VARARGS_H
+#include <schily/varargs.h>    /* Needed for e.g. va_list (POSIX) */
+#endif
+
+
+#if    !defined(HAVE_MBTOWC) || !defined(HAVE_WCTOMB)
+#if    defined(HAVE_MBRTOWC) && defined(HAVE_WCRTOMB)
+#      define  mbtowc(wp, cp, len)     mbrtowc(wp, cp, len, (mbstate_t *)0)
+#      define  wctomb(cp, wc)          wcrtomb(cp, wc, (mbstate_t *)0)
+#else
+#      define  NO_WCHAR
+#endif
+#endif
+
+#ifdef HAVE_WCHAR_H
+
+#ifndef        _INCL_WCHAR_H
+#include <wchar.h>
+#define        _INCL_WCHAR_H
+#endif
+
+#ifndef        HAVE_MBSINIT
+#define        mbsinit(sp)                     ((int)((sp) == 0))
+#endif
+#ifndef        HAVE_MBRTOWC
+#define        mbrtowc(wp, cp, len, sp)        mbtowc(wp, cp, len)
+#endif
+#ifndef        HAVE_WCRTOMB
+#define        wcrtomb(cp, wc, sp)             wctomb(cp, wc)
+#endif
+
+#ifndef        USE_WCHAR
+#define        USE_WCHAR
+#endif
+
+#else  /* HAVE_WCHAR_H */
+
+#undef USE_WCHAR
+#endif /* !HAVE_WCHAR_H */
+
+#if    !defined(HAVE_WCTYPE_H) && !defined(HAVE_ISWPRINT)
+#undef USE_WCHAR
+#undef USE_WCTYPE
+#endif
+
+#ifdef NO_WCTYPE
+#undef USE_WCHAR
+#undef USE_WCTYPE
+#endif
+
+#ifdef NO_WCHAR
+#undef USE_WCHAR
+#undef USE_WCTYPE
+#endif
+
+#ifndef        USE_WCHAR
+
+/*
+ * We either don't have wide chars or we don't use them...
+ */
+#undef wchar_t
+#define        wchar_t char
+#undef wint_t
+#define        wint_t  int
+/*
+ * We cannot define wctype_t here because of a bug in Linux (missing xctype_t
+ * definition in wchar.h
+ */
+#ifdef __never__
+#undef wctype_t
+#define        wctype_t        int
+#endif
+
+#undef WEOF
+#define        WEOF    ((wint_t)-1)
+
+#ifndef        _SCHILY_UTYPES_H
+#include <schily/utypes.h>     /* For TYPE_MAXVAL() */
+#endif
+
+#undef WCHAR_MAX
+#define        WCHAR_MAX       TYPE_MAXVAL(wchar_t)
+#undef WCHAR_MIN
+#define        WCHAR_MIN       TYPE_MINVAL(wchar_t)
+
+#undef WINT_MAX
+#define        WINT_MAX        TYPE_MAXVAL(wint_t)
+#undef WINT_MIN
+#define        WINT_MIN        TYPE_MINVAL(wint_t)
+
+#undef WCTYPE_MAX
+#define        WCTYPE_MAX      TYPE_MAXVAL(wctype_t)
+#undef WCTYPE_MIN
+#define        WCTYPE_MIN      TYPE_MINVAL(wctype_t)
+
+#undef SIZEOF_WCHAR_T
+#define        SIZEOF_WCHAR_T  SIZEOF_CHAR
+
+#undef MB_CUR_MAX
+#define        MB_CUR_MAX      1
+#undef MB_LEN_MAX
+#define        MB_LEN_MAX      1
+
+/*
+ * The mbtowc() for the non-multibyte case could be as simple as
+ *
+ * #define     mbtowc(wp, cp, len)     (*(wp) = *(cp), 1)
+ *
+ * but Mac OS X forces us to do many mbtowc(NULL, NULL, 0) calls in order
+ * to reset the internal state. On other platforms that do not support
+ * wide chars, NULL may be defined as (void *)0, so we need to check
+ * for "wp" != NULL and to cast "wp" and "cp" to their expected types.
+ */
+#undef mbtowc
+#define        mbtowc(wp, cp, len)     ((void)((wp) ? \
+                               *(wchar_t *)(wp) = *(char *)(cp) : 1), 1)
+#undef mbrtowc
+#define        mbrtowc(wp, cp, len, sp) ((void)((wp) ? \
+                               *(wchar_t *)(wp) = *(char *)(cp) : 1), 1)
+#undef wctomb
+#define        wctomb(cp, wc)          (*(cp) = wc, 1)
+#undef wcrtomb
+#define        wcrtomb(cp, wc, sp)     (*(cp) = wc, 1)
+
+#undef mbsinit
+#define        mbsinit(sp)             ((int)((sp) == 0))
+
+#undef wcwidth
+#define        wcwidth(wc)             (1)
+
+#else  /* USE_WCHAR */
+
+#ifndef        HAVE_WCWIDTH
+#undef wcwidth
+#define        wcwidth(wc)             (1)
+#endif
+
+#endif /* USE_WCHAR */
+
+#endif /* _SCHILY_WCHAR_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/wctype.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/wctype.h
new file mode 100644 (file)
index 0000000..d829879
--- /dev/null
@@ -0,0 +1,99 @@
+/* @(#)wctype.h        1.8 13/07/08 Copyright 2009-2013 J. Schilling */
+/*
+ *     Abstraction from wctype.h
+ *
+ *     Copyright (c) 2009-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_WCTYPE_H
+#define        _SCHILY_WCTYPE_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifndef        _SCHILY_WCHAR_H
+#include <schily/wchar.h>
+#endif
+
+#ifdef HAVE_WCTYPE_H
+/*
+ * Include wctype.h if wchars have been enabled in schily/wchar.h
+ */
+#ifdef USE_WCHAR
+#ifndef        _INCL_WCTYPE_H
+#include <wctype.h>
+#define        _INCL_WCTYPE_H
+#endif
+#ifndef        USE_WCTYPE
+#define        USE_WCTYPE
+#endif
+#endif /* USE_WCHAR */
+#endif /* HAVE_WCTYPE_H */
+
+#if    defined(HAVE_ISWPRINT) && defined(USE_WCHAR)
+#ifndef        USE_WCTYPE
+#undef USE_WCTYPE
+#endif
+#endif
+
+#if    !defined(HAVE_WCTYPE_H) && !defined(HAVE_ISWPRINT)
+#undef USE_WCTYPE
+#endif
+
+#ifdef NO_WCTYPE
+#undef USE_WCTYPE
+#endif
+
+#ifndef        USE_WCTYPE
+
+#ifndef        _SCHILY_CTYPE_H
+#include <schily/ctype.h>
+#endif
+
+#undef iswalnum
+#define        iswalnum(c)     isalnum(c)
+#undef iswalpha
+#define        iswalpha(c)     isalpha(c)
+#undef iswcntrl
+#define        iswcntrl(c)     iscntrl(c)
+#undef iswcntrl
+#define        iswcntrl(c)     iscntrl(c)
+#undef iswdigit
+#define        iswdigit(c)     isdigit(c)
+#undef iswgraph
+#define        iswgraph(c)     isgraph(c)
+#undef iswlower
+#define        iswlower(c)     islower(c)
+#undef iswprint
+#define        iswprint(c)     isprint(c)
+#undef iswpunct
+#define        iswpunct(c)     ispunct(c)
+#undef iswspace
+#define        iswspace(c)     isspace(c)
+#undef iswupper
+#define        iswupper(c)     isupper(c)
+#undef iswxdigit
+#define        iswxdigit(c)    isxdigit(c)
+
+#undef towlower
+#define        towlower(c)     tolower(c)
+#undef towupper
+#define        towupper(c)     toupper(c)
+
+#endif /* !USE_WCTYPE */
+
+#endif /* _SCHILY_WCTYPE_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/windows.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/windows.h
new file mode 100644 (file)
index 0000000..5f78997
--- /dev/null
@@ -0,0 +1,88 @@
+/* @(#)windows.h       1.4 13/10/26 Copyright 2011-2013 J. Schilling */
+/*
+ *     Definitions for windows.h
+ *
+ *     Copyright (c) 2011-2013 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_WINDOWS_H
+#define        _SCHILY_WINDOWS_H
+
+#ifndef        _SCHILY_MCONFIG_H
+#include <schily/mconfig.h>
+#endif
+
+#ifdef HAVE_WINDOWS_H
+#ifndef        _INCL_WINDOWS_H
+
+/*
+ * configure believes they are missing and #define's them:
+ */
+#if defined(_MSC_VER) || defined(__MINGW32__)
+/* BEGIN CSTYLED */
+#undef u_char
+#undef u_short
+#undef u_int
+#undef u_long
+/* END CSTYLED */
+#endif
+
+#if defined(__CYGWIN32__) || defined(__CYGWIN__)
+
+/*
+ * Cygwin-1.7.17 (Autumn 2012) makes life hard as it prevents to rename
+ * the Cygwin BOOL definition. Note that we have our own BOOL definition
+ * in schily/standard.h that exists since 1982 which happened before Microsoft
+ * introduced their BOOL.
+ *
+ * Previous Cygwin versions have been compatible to the original MS include
+ * files and allowed to rename the BOOL from windows.h (windef.h) by just using
+ * #define BOOL WBOOL before #include <windows.h>.
+ *
+ * Recent Cygwin version are unfriendly to us and prevent this.
+ * We now need a two level #define to redirect the BOOL from windows.h to the
+ * Cygwin specific WINBOOL typedef.
+ *
+ * If we do not include schily/standard.h with newer Cygwin, we cannot get
+ * working typedefs for "PBOOL" and "LPBOOL".
+ */
+#include <schily/standard.h>   /* Get our BOOL typedef */
+
+#define        _NO_BOOL_TYPEDEF        /* Avoid 2nd BOOL typedef on Cygwin-1.7.17 */
+
+#define        WBOOL   WINBOOL         /* Cygwin-1.7.17 prevents to avoid BOOL */
+#endif /* defined(__CYGWIN32__) || defined(__CYGWIN__) */
+
+
+#define        BOOL    WBOOL           /* This is the Win BOOL         */
+#define        format  __ms_format     /* Avoid format parameter hides global ... */
+
+#ifdef timerclear              /* struct timeval has already been declared */
+#define        timeval __ms_timeval
+#endif
+
+#include <windows.h>
+
+#undef BOOL                    /* MS Code uses WBOOL or #define BOOL WBOOL */
+#undef format                  /* Return to previous definition */
+#undef timeval
+
+#define        _INCL_WINDOWS_H
+#endif
+
+#endif /* HAVE_WINDOWS_H */
+
+#endif /* _SCHILY_WINDOWS_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/include/schily/xconfig.h b/reactos/sdk/tools/mkisofs/schilytools/include/schily/xconfig.h
new file mode 100644 (file)
index 0000000..83f7f2c
--- /dev/null
@@ -0,0 +1,180 @@
+/* @(#)xconfig.h       1.13 13/07/23 Copyright 1995-2013 J. Schilling */
+/*
+ *     This file either includes the dynamic or manual autoconf stuff.
+ *
+ *     Copyright (c) 1995-2013 J. Schilling
+ *
+ *     This file is included from <schily/mconfig.h> and usually
+ *     includes $(SRCROOT)/incs/$(OARCH)/xconfig.h via
+ *     -I$(SRCROOT)/incs/$(OARCH)/
+ *
+ *     Use only cpp instructions.
+ *
+ *     NOTE: SING: (Schily Is Not Gnu)
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#ifndef _SCHILY_XCONFIG_H
+#define        _SCHILY_XCONFIG_H
+
+/*
+ * This hack that is needed as long as VMS has no POSIX shell.
+ * It will go away soon. VMS users: in future you need to specify:
+ * cc -DUSE_STATIC_CONF
+ */
+#ifdef VMS
+#      define  USE_STATIC_CONF
+#endif
+
+#ifdef NO_STATIC_CONF
+#undef USE_STATIC_CONF
+#endif
+
+#ifdef USE_STATIC_CONF
+#      include <schily/xmconfig.h>     /* The static autoconf stuff */
+#else  /* USE_STATIC_CONF */
+
+
+#ifdef SCHILY_BUILD    /* #defined by Schily makefile system */
+       /*
+        * Include $(SRCROOT)/incs/$(OARCH)/xconfig.h via
+        * -I$(SRCROOT)/incs/$(OARCH)/
+        */
+#      include <xconfig.h>     /* The current dynamic autoconf stuff */
+#else  /* !SCHILY_BUILD */
+/*
+ * The stuff for static compilation. Include files from a previous
+ * dynamic autoconfiguration.
+ */
+#ifdef __SUNOS5_SPARC_CC32
+#include <schily/sparc-sunos5-cc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_SPARC_CC64
+#include <schily/sparc-sunos5-cc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC32
+#include <schily/sparc-sunos5-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_SPARC_GCC64
+#include <schily/sparc-sunos5-gcc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_X86_CC32
+#include <schily/i386-sunos5-cc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_X86_CC64
+#include <schily/i386-sunos5-cc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC32
+#include <schily/i386-sunos5-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __SUNOS5_X86_GCC64
+#include <schily/i386-sunos5-gcc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __SUNOS4_MC68000_CC32
+#ifdef __mc68020
+#include <schily/mc68020-sunos4-cc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#endif
+#ifdef __SUNOS4_MC68000_GCC32
+#ifdef __mc68020
+#include <schily/mc68020-sunos4-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#endif
+
+#ifdef __HPUX_HPPA_CC32
+#include <schily/hppa-hp-ux-cc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_CC64
+#include <schily/hppa-hp-ux-cc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC32
+#include <schily/hppa-hp-ux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __HPUX_HPPA_GCC64
+#include <schily/hppa-hp-ux-gcc64/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __LINUX_ARMV6L_GCC32
+#include <schily/armv6l-linux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5L_GCC32
+#include <schily/armv6l-linux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_ARMV5TEJL_GCC32
+#include <schily/armv5tejl-linux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_I386_GCC32
+#include <schily/i686-linux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+#ifdef __LINUX_amd64_GCC64
+#include <schily/x86_64-linux-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __MSWIN_X86_CL32
+#include <schily/i686-cygwin32_nt-cl/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifdef __CYGWIN_X86_GCC
+#include <schily/i686-cygwin32_nt-gcc/xconfig.h>
+#define        __JS_ARCH_CONF_INCL
+#endif
+
+#ifndef        __JS_ARCH_CONF_INCL
+/*
+ * #error will not work for all compilers (e.g. sunos4)
+ * The following line will abort compilation on all compilers
+ * if none of the above is defined. And that's  what we want.
+ */
+Error unconfigured architecture
+
+#include <schily/err_arch.h>   /* Avoid "unknown directive" with K&R */
+#endif
+
+#endif /* SCHILY_BUILD */
+
+#endif /* USE_STATIC_CONF */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Fake in order to keep the silly hdrchk(1) quiet.
+ */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SCHILY_XCONFIG_H */
diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/astoll.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/astoll.c
new file mode 100644 (file)
index 0000000..db1e976
--- /dev/null
@@ -0,0 +1,164 @@
+/* @(#)astoll.c        1.5 15/12/10 Copyright 1985, 2000-2015 J. Schilling */
+/*
+ *     astoll() converts a string to long long
+ *
+ *     Leading tabs and spaces are ignored.
+ *     Both return pointer to the first char that has not been used.
+ *     Caller must check if this means a bad conversion.
+ *
+ *     leading "+" is ignored
+ *     leading "0"  makes conversion octal (base 8)
+ *     leading "0x" makes conversion hex   (base 16)
+ *
+ *     Llong is silently reverted to long if the compiler does not
+ *     support long long.
+ *
+ *     Copyright (c) 1985, 2000-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#include <schily/mconfig.h>
+#include <schily/standard.h>
+#include <schily/utypes.h>
+#include <schily/schily.h>
+#include <schily/errno.h>
+
+#define        is_space(c)      ((c) == ' ' || (c) == '\t')
+#define        is_digit(c)      ((c) >= '0' && (c) <= '9')
+#define        is_hex(c)       (\
+                       ((c) >= 'a' && (c) <= 'f') || \
+                       ((c) >= 'A' && (c) <= 'F'))
+
+#define        is_lower(c)     ((c) >= 'a' && (c) <= 'z')
+#define        is_upper(c)     ((c) >= 'A' && (c) <= 'Z')
+#define        to_lower(c)     (((c) >= 'A' && (c) <= 'Z') ? (c) - 'A'+'a' : (c))
+
+#if    ('i' + 1) < 'j'
+#define        BASE_MAX        ('i' - 'a' + 10 + 1)    /* This is EBCDIC */
+#else
+#define        BASE_MAX        ('z' - 'a' + 10 + 1)    /* This is ASCII */
+#endif
+
+
+char *
+astoll(s, l)
+       register const char *s;
+       Llong *l;
+{
+       return (astollb(s, l, 0));
+}
+
+char *
+astollb(s, l, base)
+       register const char *s;
+       Llong *l;
+       register int base;
+{
+       int neg = 0;
+       register ULlong ret = (ULlong)0;
+               ULlong maxmult;
+               ULlong maxval;
+       register int digit;
+       register char c;
+
+       if (base > BASE_MAX || base == 1 || base < 0) {
+               seterrno(EINVAL);
+               return ((char *)s);
+       }
+
+       while (is_space(*s))
+               s++;
+
+       if (*s == '+') {
+               s++;
+       } else if (*s == '-') {
+               s++;
+               neg++;
+       }
+
+       if (base == 0) {
+               if (*s == '0') {
+                       base = 8;
+                       s++;
+                       if (*s == 'x' || *s == 'X') {
+                               s++;
+                               base = 16;
+                       }
+               } else {
+                       base = 10;
+               }
+       }
+       if (neg) {
+               /*
+                * Portable way to compute the positive value of "min-Llong"
+                * as -TYPE_MINVAL(Llong) does not work.
+                */
+               maxval = ((ULlong)(-1 * (TYPE_MINVAL(Llong)+1))) + 1;
+       } else {
+               maxval = TYPE_MAXVAL(Llong);
+       }
+       maxmult = maxval / base;
+       for (; (c = *s) != 0; s++) {
+
+               if (is_digit(c)) {
+                       digit = c - '0';
+               } else if (is_lower(c)) {
+                       digit = c - 'a' + 10;
+               } else if (is_upper(c)) {
+                       digit = c - 'A' + 10;
+               } else {
+                       break;
+               }
+
+               if (digit < base) {
+                       if (ret > maxmult)
+                               goto overflow;
+                       ret *= base;
+                       if (maxval - ret < digit)
+                               goto overflow;
+                       ret += digit;
+               } else {
+                       break;
+               }
+       }
+       if (neg) {
+               *l = (Llong)-1 * ret;
+       } else {
+               *l = (Llong)ret;
+       }
+       return ((char *)s);
+overflow:
+       for (; (c = *s) != 0; s++) {
+
+               if (is_digit(c)) {
+                       digit = c - '0';
+               } else if (is_lower(c)) {
+                       digit = c - 'a' + 10;
+               } else if (is_upper(c)) {
+                       digit = c - 'A' + 10;
+               } else {
+                       break;
+               }
+               if (digit >= base)
+                       break;
+       }
+       if (neg) {
+               *l = TYPE_MINVAL(Llong);
+       } else {
+               *l = TYPE_MAXVAL(Llong);
+       }
+       seterrno(ERANGE);
+       return ((char *)s);
+}
diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/checkerr.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/checkerr.c
new file mode 100644 (file)
index 0000000..520b9bb
--- /dev/null
@@ -0,0 +1,323 @@
+/* @(#)checkerr.c      1.24 09/07/08 Copyright 2003-2009 J. Schilling */
+#include <schily/mconfig.h>
+#ifndef lint
+static UConst char sccsid[] =
+       "@(#)checkerr.c 1.24 09/07/08 Copyright 2003-2009 J. Schilling";
+#endif
+/*
+ *     Generic error control for programs that do file i/o.
+ *     The error control is usually used by archiving programs.
+ *
+ *     The current version does not provide a stable interface.
+ *     It does not support multi-threaded programs and it may call
+ *     comerr() from the parser. If you use the code before there is
+ *     an official stable and "library-compliant" interface, be careful
+ *     and watch for changes.
+ *
+ *     Copyright (c) 2003-2009 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#include <schily/stdio.h>
+#include <schily/standard.h>
+#include <schily/patmatch.h>
+#include <schily/string.h>
+#include <schily/utypes.h>
+#include <schily/schily.h>
+#include <schily/checkerr.h>
+
+typedef struct errconf {
+       struct errconf  *ec_next;       /* Next in list                     */
+       const   Uchar   *ec_pat;        /* File name pattern                */
+       int             *ec_aux;        /* Aux array from pattern compiler  */
+       int             ec_alt;         /* Alt return from pattern compiler */
+       int             ec_plen;        /* String length of pattern         */
+       UInt32_t        ec_flags;       /* Error condition flags            */
+} ec_t;
+
+LOCAL  int     *ec_state;              /* State array for pattern compiler */
+LOCAL  ec_t    *ec_root;               /* Root node of error config list   */
+LOCAL  ec_t    **ec_last = &ec_root;   /* Last pointer in root node list   */
+LOCAL  int     maxplen;
+LOCAL  BOOL    _errflag = TRUE;        /* Abort on all errors              */
+
+EXPORT int     errconfig       __PR((char *name));
+LOCAL  char    *_endword       __PR((char *p));
+LOCAL  void    parse_errctl    __PR((char *line));
+LOCAL  UInt32_t errflags       __PR((char *eflag, BOOL doexit));
+LOCAL  ec_t    *_errptr        __PR((int etype, const char *fname));
+EXPORT BOOL    errhidden       __PR((int etype, const char *fname));
+EXPORT BOOL    errwarnonly     __PR((int etype, const char *fname));
+EXPORT BOOL    errabort        __PR((int etype, const char *fname, BOOL doexit));
+
+/*
+ * Read and parse error configuration file
+ */
+EXPORT int
+errconfig(name)
+       char    *name;
+{
+       char    line[8192];
+       FILE    *f;
+       int     omaxplen = maxplen;
+
+       if ((f = fileopen(name, "r")) == NULL) {
+               if (errflags(name, FALSE) != 0)
+                       parse_errctl(name);
+               else
+                       comerr("Cannot open '%s'.\n", name);
+       } else {
+               while (fgetline(f, line, sizeof (line)) >= 0) {
+                       parse_errctl(line);
+               }
+               fclose(f);
+       }
+       if (maxplen > omaxplen) {
+               ec_state = ___realloc(ec_state, (maxplen+1)*sizeof (int),
+                                                       "pattern state");
+       }
+       return (1);
+}
+
+LOCAL char *
+_endword(p)
+       char    *p;
+{
+       /*
+        * Find end of word.
+        */
+       for (;  *p != '\0' &&
+               *p != '\t' &&
+               *p != ' ';
+                               p++) {
+               ;
+               /* LINTED */
+       }
+       return (p);
+}
+
+LOCAL void
+parse_errctl(line)
+       char    *line;
+{
+       int     plen;
+       char    *pattern;
+       ec_t    *ep;
+
+       /*
+        * Find end of word.
+        */
+       pattern = _endword(line);
+
+       if (pattern == line || *pattern == '\0') {
+               comerrno(EX_BAD,
+               "Bad error configuration line '%s'.\n", line);
+       }
+       /*
+        * Find end of white space after word.
+        */
+       for (pattern++; *pattern != '\0' &&
+           (*pattern == '\t' || *pattern == ' ');
+                               pattern++) {
+               ;
+               /* LINTED */
+       }
+       ep = ___malloc(sizeof (ec_t), "errcheck node");
+       ep->ec_flags = errflags(line, TRUE);
+       ep->ec_plen = plen = strlen(pattern);
+       if (ep->ec_plen > maxplen)
+               maxplen = ep->ec_plen;
+       ep->ec_pat = (const Uchar *)___savestr(pattern);
+       ep->ec_aux = ___malloc(plen*sizeof (int), "compiled pattern");
+       if ((ep->ec_alt = patcompile((const Uchar *)pattern,
+                                               plen, ep->ec_aux)) == 0)
+               comerrno(EX_BAD, "Bad errctl pattern: '%s'.\n", pattern);
+
+       ep->ec_next = NULL;
+       *ec_last = ep;
+       ec_last = &ep->ec_next;
+}
+
+LOCAL struct eflags {
+       char    *fname;
+       UInt32_t fval;
+} eflags[] = {
+       { "STAT",               E_STAT },
+       { "GETACL",             E_GETACL },
+       { "OPEN",               E_OPEN },
+       { "READ",               E_READ },
+       { "WRITE",              E_WRITE },
+       { "GROW",               E_GROW },
+       { "SHRINK",             E_SHRINK },
+       { "MISSLINK",           E_MISSLINK },
+       { "NAMETOOLONG",        E_NAMETOOLONG },
+       { "FILETOOBIG",         E_FILETOOBIG },
+       { "SPECIALFILE",        E_SPECIALFILE },
+       { "READLINK",           E_READLINK },
+       { "GETXATTR",           E_GETXATTR },
+       { "CHDIR",              E_CHDIR },
+
+       { "SETTIME",            E_SETTIME },
+       { "SETMODE",            E_SETMODE },
+       { "SECURITY",           E_SECURITY },
+       { "LSECURITY",          E_LSECURITY },
+       { "SAMEFILE",           E_SAMEFILE },
+       { "BADACL",             E_BADACL },
+       { "SETACL",             E_SETACL },
+       { "SETXATTR",           E_SETXATTR },
+
+       { "ALL",                E_ALL },
+
+       { "DIFF",               E_DIFF },
+       { "WARN",               E_WARN },
+       { "ABORT",              E_ABORT },
+
+       { NULL,                 0 }
+};
+
+/*
+ * Convert error condition string into flag word
+ */
+LOCAL UInt32_t
+errflags(eflag, doexit)
+       char    *eflag;
+       BOOL    doexit;
+{
+       register char           *p = eflag;
+               char            *ef = _endword(eflag);
+       register struct eflags  *ep;
+       register int            slen;
+       register UInt32_t       nflags = 0;
+
+       do {
+               for (ep = eflags; ep->fname; ep++) {
+                       slen = strlen(ep->fname);
+                       if ((strncmp(ep->fname, p, slen) == 0) &&
+                           (p[slen] == '|' || p[slen] == ' ' ||
+                           p[slen] == '\0')) {
+                               nflags |= ep->fval;
+                               break;
+                       }
+               }
+               if (ep->fname == NULL) {
+                       if (doexit)
+                               comerrno(EX_BAD, "Bad flag '%s'\n", p);
+                       return (0);
+               }
+               p = strchr(p, '|');
+       } while (p < ef && p && *p++ == '|');
+
+       if ((nflags & ~(UInt32_t)(E_ABORT|E_WARN)) == 0) {
+               if (doexit)
+                       comerrno(EX_BAD, "Bad error condition '%s'.\n", eflag);
+               return (0);
+       }
+       return (nflags);
+}
+
+LOCAL ec_t *
+_errptr(etype, fname)
+               int     etype;
+       const   char    *fname;
+{
+       ec_t            *ep = ec_root;
+       char            *ret;
+       const Uchar     *name = (const Uchar *)fname;
+       int             nlen;
+
+       if (fname == NULL) {
+               errmsgno(EX_BAD,
+                       "Implementation botch for errhidden(0x%X, NULL)\n",
+                       etype);
+               errmsgno(EX_BAD, "Please report this bug!\n");
+               errmsgno(EX_BAD, "Error cannot be ignored.\n");
+               return ((ec_t *)NULL);
+       }
+       nlen  = strlen(fname);
+       while (ep) {
+               if ((ep->ec_flags & etype) != 0) {
+                       ret = (char *)patmatch(ep->ec_pat, ep->ec_aux,
+                                       name, 0,
+                                       nlen, ep->ec_alt, ec_state);
+                       if (ret != NULL && *ret == '\0')
+                               return (ep);
+               }
+               ep = ep->ec_next;
+       }
+       return ((ec_t *)NULL);
+}
+
+/*
+ * Check whether error condition should be ignored for file name.
+ */
+EXPORT BOOL
+errhidden(etype, fname)
+               int     etype;
+       const   char    *fname;
+{
+       ec_t            *ep;
+
+       if ((ep = _errptr(etype, fname)) != NULL) {
+               if ((ep->ec_flags & (E_ABORT|E_WARN)) != 0)
+                       return (FALSE);
+               return (TRUE);
+       }
+       return (FALSE);
+}
+
+/*
+ * Check whether error condition should not affect exit code for file name.
+ */
+EXPORT BOOL
+errwarnonly(etype, fname)
+               int     etype;
+       const   char    *fname;
+{
+       ec_t            *ep;
+
+       if ((ep = _errptr(etype, fname)) != NULL) {
+               if ((ep->ec_flags & E_WARN) != 0)
+                       return (TRUE);
+               return (FALSE);
+       }
+       return (FALSE);
+}
+
+/*
+ * Check whether error condition should be fatal for file name.
+ */
+EXPORT BOOL
+errabort(etype, fname, doexit)
+               int     etype;
+       const   char    *fname;
+               BOOL    doexit;
+{
+       ec_t    *ep;
+
+       if ((ep = _errptr(etype, fname)) == NULL) {
+               if (!_errflag)
+                       return (FALSE);
+       } else if ((ep->ec_flags & E_ABORT) == 0)
+               return (FALSE);
+
+       if (doexit) {
+               errmsgno(EX_BAD, "Error is considered fatal, aborting.\n");
+#ifdef CALL_OTHER_FUNCTION
+               if (other_func != NULL)
+                       (*other_func)();
+               else
+#endif
+                       comexit(-3);
+       }
+       return (TRUE);
+}
diff --git a/reactos/sdk/tools/mkisofs/schilytools/libschily/comerr.c b/reactos/sdk/tools/mkisofs/schilytools/libschily/comerr.c
new file mode 100644 (file)
index 0000000..cb72f0f
--- /dev/null
@@ -0,0 +1,373 @@
+/* @(#)comerr.c        1.43 15/07/01 Copyright 1985-1989, 1995-2015 J. Schilling */
+/*
+ *     Routines for printing command errors
+ *
+ *     Copyright (c) 1985-1989, 1995-2015 J. Schilling
+ */
+/*
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file CDDL.Schily.txt from this distribution.
+ */
+
+#include <schily/mconfig.h>
+#include <schily/unistd.h>     /* include <sys/types.h> try to get size_t */
+#include <schily/stdio.h>      /* Try again for size_t */
+#include <schily/stdlib.h>     /* Try again for size_t */
+#include <schily/standard.h>
+#include <schily/varargs.h>
+#include <schily/string.h>
+#include <schily/schily.h>
+#include <schily/errno.h>
+
+EXPORT int     on_comerr       __PR((void (*fun)(int, void *), void *arg));
+EXPORT void    comerr          __PR((const char *, ...));
+EXPORT void    xcomerr         __PR((int, const char *, ...));
+EXPORT void    comerrno        __PR((int, const char *, ...));
+EXPORT void    xcomerrno       __PR((int, int, const char *, ...));
+EXPORT int     errmsg          __PR((const char *, ...));
+EXPORT int     errmsgno        __PR((int, const char *, ...));
+EXPORT int     _comerr         __PR((FILE *, int, int, int,
+                                               const char *, va_list));
+LOCAL  int     _ex_clash       __PR((int));
+EXPORT void    comexit         __PR((int));
+EXPORT char    *errmsgstr      __PR((int));
+
+typedef        struct ex {
+       struct ex *next;
+       void    (*func) __PR((int, void *));
+       void    *arg;
+} ex_t;
+
+LOCAL  ex_t    *exfuncs;
+
+/*
+ * Set list of callback functions to call with *comerr() and comexit().
+ * The function set up last with on_comerr() is called first on exit;
+ * in other words: call order is the reverse order of registration.
+ */
+EXPORT int
+on_comerr(func, arg)
+       void    (*func) __PR((int, void *));
+       void    *arg;
+{
+       ex_t    *fp;
+
+       fp = malloc(sizeof (*fp));
+       if (fp == NULL)
+               return (-1);
+
+       fp->func = func;
+       fp->arg  = arg;
+       fp->next = exfuncs;
+       exfuncs = fp;
+       return (0);
+}
+
+/*
+ * Fetch current errno, print a related message and exit(errno).
+ */
+/* VARARGS1 */
+#ifdef PROTOTYPES
+EXPORT void
+comerr(const char *msg, ...)
+#else
+EXPORT void
+comerr(msg, va_alist)
+       char    *msg;
+       va_dcl
+#endif
+{
+       va_list args;
+
+#ifdef PROTOTYPES
+       va_start(args, msg);
+#else
+       va_start(args);
+#endif
+       (void) _comerr(stderr, COMERR_EXIT, 0, geterrno(), msg, args);
+       /* NOTREACHED */
+       va_end(args);
+}
+
+/*
+ * Fetch current errno, print a related message and exit(exc).
+ */
+/* VARARGS2 */
+#ifdef PROTOTYPES
+EXPORT void
+xcomerr(int exc, const char *msg, ...)
+#else
+EXPORT void
+xcomerr(exc, msg, va_alist)
+       int     exc;
+       char    *msg;
+       va_dcl
+#endif
+{
+       va_list args;
+
+#ifdef PROTOTYPES
+       va_start(args, msg);
+#else
+       va_start(args);
+#endif
+       (void) _comerr(stderr, COME