|
|
1.1 root 1: #!/bin/sh
2: #
3: # minimal Linux init script for registering Hatari as binfmt_misc
4: # handler for TOS binaries
1.1.1.2 ! root 5: #
! 6: # NOTE: newer Debian derived distributions have convenience functionality
! 7: # for this. Just put something like this to /usr/share/binfmts/hatari:
! 8: # package hatari
! 9: # interpreter /usr/bin/hatari
! 10: # magic \x60\x1a
! 11: # And call these when Hatari is installed and removed:
! 12: # update-binfmts --import hatari
! 13: # update-binfmts --remove hatari /usr/bin/hatari
1.1 root 14:
15: # name given for binftm_misc
16: name=TOS
17:
18: # first bytes for GEMDOS programs
19: magic="\x60\x1a"
20:
21: # what is used to "interpret" (run) these programs
22: runner=/usr/bin/hatari
23:
24: register_binfmt ()
25: {
26: # Mount the binfmt_misc directory if not already mounted
27: if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then
28: (set -e; mount none /proc/sys/fs/binfmt_misc -t binfmt_misc)
29: fi
30: if [ -e /proc/sys/fs/binfmt_misc/$name ] ; then
31: echo "WARNING: $name binfmt_misc handler already registered."
32: return
33: fi
34: # Register runner for files starting with specified magic
35: regfile=/proc/sys/fs/binfmt_misc/register
36: if ! echo ":$name:M::$magic::$runner:" > $regfile ; then
37: echo "ERROR: registering $name binfmt_misc handler failed!"
38: exit 1
39: fi
40: echo "Registered $name binfmt_misc handler."
41: }
42:
43: deregister_binfmt ()
44: {
45: if [ -e /proc/sys/fs/binfmt_misc/$name ] ; then
46: echo -1 > /proc/sys/fs/binfmt_misc/$name
47: echo "De-registered $name binfmt_misc handler."
48: else
49: echo "WARNING: no binfmt_misc handler for $name."
50: fi
51: }
52:
53: case "$1" in
54: start)
55: register_binfmt
56: ;;
57: stop)
58: deregister_binfmt
59: ;;
60: *)
61: echo "Usage: ${0##*/} start|stop" >&2
62: exit 1
63: ;;
64: esac
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.