|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.