Annotation of hatari/tools/hatari-tos-register.sh, revision 1.1.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.