Annotation of hatari/tools/hatari-tos-register.sh, revision 1.1

1.1     ! root        1: #!/bin/sh
        !             2: #
        !             3: # minimal Linux init script for registering Hatari as binfmt_misc
        !             4: # handler for TOS binaries
        !             5: 
        !             6: # name given for binftm_misc
        !             7: name=TOS
        !             8: 
        !             9: # first bytes for GEMDOS programs
        !            10: magic="\x60\x1a"
        !            11: 
        !            12: # what is used to "interpret" (run) these programs
        !            13: runner=/usr/bin/hatari
        !            14: 
        !            15: register_binfmt ()
        !            16: {
        !            17:        # Mount the binfmt_misc directory if not already mounted
        !            18:        if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
        !            19:                (set -e; mount none /proc/sys/fs/binfmt_misc -t binfmt_misc)
        !            20:        fi
        !            21:        if [ -e /proc/sys/fs/binfmt_misc/$name ] ; then
        !            22:                echo "WARNING: $name binfmt_misc handler already registered."
        !            23:                return
        !            24:        fi
        !            25:        # Register runner for files starting with specified magic
        !            26:        regfile=/proc/sys/fs/binfmt_misc/register
        !            27:        if ! echo ":$name:M::$magic::$runner:" > $regfile ; then
        !            28:                echo "ERROR: registering $name binfmt_misc handler failed!"
        !            29:                exit 1
        !            30:        fi
        !            31:        echo "Registered $name binfmt_misc handler."
        !            32: }
        !            33: 
        !            34: deregister_binfmt ()
        !            35: {
        !            36:        if [ -e /proc/sys/fs/binfmt_misc/$name ] ; then
        !            37:                echo -1 > /proc/sys/fs/binfmt_misc/$name
        !            38:                echo "De-registered $name binfmt_misc handler."
        !            39:        else
        !            40:                echo "WARNING: no binfmt_misc handler for $name."
        !            41:        fi
        !            42: }
        !            43: 
        !            44: case "$1" in
        !            45:        start)
        !            46:                register_binfmt
        !            47:                ;;
        !            48:        stop)
        !            49:                deregister_binfmt
        !            50:                ;;
        !            51:        *)
        !            52:                echo "Usage: ${0##*/} start|stop" >&2
        !            53:                exit 1
        !            54:                ;;
        !            55: esac

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.