| /* |
| * Creation Date: <1999/03/18 03:19:43 samuel> |
| * Time-stamp: <2003/12/26 16:58:19 samuel> |
| * |
| * <os_interface.h> |
| * |
| * This file includes definitions for drivers |
| * running in the "emulated" OS. (Mainly the 'sc' |
| * mechanism of communicating) |
| * |
| * Copyright (C) 1999, 2000, 2001, 2002, 2003 Samuel Rydh (samuel@ibrium.se) |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation |
| * |
| */ |
| |
| #ifndef _H_OSI |
| #define _H_OSI |
| |
| /* Magic register values loaded into r3 and r4 before the 'sc' assembly instruction */ |
| #define OSI_SC_MAGIC_R3 0x113724FA |
| #define OSI_SC_MAGIC_R4 0x77810F9B |
| |
| |
| /************************************************************************/ |
| /* Selectors (passed in r5) */ |
| /************************************************************************/ |
| |
| #define OSI_CALL_AVAILABLE 0 |
| #define OSI_DEBUGGER 1 /* enter debugger */ |
| /* obsolete OSI_LOG_STR 3 */ |
| #define OSI_CMOUNT_DRV_VOL 4 /* conditionally mount driver volume */ |
| /* obsolete OSI_SCSI_xxx 5-6 */ |
| #define OSI_GET_GMT_TIME 7 |
| #define OSI_MOUSE_CNTRL 8 |
| #define OSI_GET_LOCALTIME 9 /* return time in secs from 01/01/04 */ |
| |
| #define OSI_ENET_OPEN 10 |
| #define OSI_ENET_CLOSE 11 |
| #define OSI_ENET_GET_ADDR 12 |
| #define OSI_ENET_GET_STATUS 13 |
| #define OSI_ENET_CONTROL 14 |
| #define OSI_ENET_ADD_MULTI 16 |
| #define OSI_ENET_DEL_MULTI 17 |
| #define OSI_ENET_GET_PACKET 18 |
| #define OSI_ENET_SEND_PACKET 19 |
| |
| #define OSI_OF_INTERFACE 20 |
| #define OSI_OF_TRAP 21 |
| #define OSI_OF_RTAS 22 |
| |
| #define OSI_SCSI_CNTRL 23 |
| #define OSI_SCSI_SUBMIT 24 |
| #define OSI_SCSI_ACK 25 |
| |
| #define OSI_GET_MOUSE 26 /* -- r3 status, r4-r8 mouse data */ |
| #define OSI_ACK_MOUSE_IRQ 27 /* -- int */ |
| |
| #define OSI_SET_VMODE 28 /* modeID, depth -- error */ |
| #define OSI_GET_VMODE_INFO 29 /* mode, depth -- r3 status, r4-r9 pb */ |
| #define OSI_GET_MOUSE_DPI 30 /* -- mouse_dpi */ |
| |
| #define OSI_SET_VIDEO_POWER 31 |
| #define OSI_GET_FB_INFO 32 /* void -- r3 status, r4-r8 video data */ |
| |
| #define OSI_SOUND_WRITE 33 |
| /* #define OSI_SOUND_FORMAT 34 */ |
| #define OSI_SOUND_SET_VOLUME 35 |
| #define OSI_SOUND_CNTL 36 |
| /* obsolete OSI_SOUND call 37 */ |
| |
| #define OSI_VIDEO_ACK_IRQ 38 |
| #define OSI_VIDEO_CNTRL 39 |
| |
| #define OSI_SOUND_IRQ_ACK 40 |
| #define OSI_SOUND_START_STOP 41 |
| |
| #define OSI_REGISTER_IRQ 42 /* reg_property[0] appl_int -- irq_cookie */ |
| /* obsolete OSI_IRQ 43-46 */ |
| |
| #define OSI_LOG_PUTC 47 /* char -- */ |
| |
| #define OSI_KBD_CNTRL 50 |
| #define OSI_GET_ADB_KEY 51 /* -- adb_keycode (keycode | keycode_id in r4) */ |
| |
| #define OSI_WRITE_NVRAM_BYTE 52 /* offs, byte -- */ |
| #define OSI_READ_NVRAM_BYTE 53 /* offs -- byte */ |
| |
| #define OSI_EXIT 54 |
| |
| #define OSI_KEYCODE_TO_ADB 55 /* (keycode | keycode_id) -- adb_keycode */ |
| #define OSI_MAP_ADB_KEY 56 /* keycode, adbcode -- */ |
| #define OSI_SAVE_KEYMAPPING 57 /* -- */ |
| #define OSI_USLEEP 58 /* usecs -- */ |
| #define OSI_SET_COLOR 59 /* index value -- */ |
| |
| #define OSI_PIC_MASK_IRQ 60 /* irq -- */ |
| #define OSI_PIC_UNMASK_IRQ 61 /* irq -- */ |
| #define OSI_PIC_ACK_IRQ 62 /* irq mask_flag -- */ |
| #define OSI_PIC_GET_ACTIVE_IRQ 63 |
| |
| #define OSI_GET_COLOR 64 /* index -- value */ |
| |
| /* 65-67 old ablk implementation */ |
| #define OSI_IRQTEST 65 |
| |
| #define OSI_ENET2_OPEN 68 |
| #define OSI_ENET2_CLOSE 69 |
| #define OSI_ENET2_CNTRL 70 |
| #define OSI_ENET2_RING_SETUP 71 |
| #define OSI_ENET2_KICK 72 |
| #define OSI_ENET2_GET_HWADDR 73 |
| #define OSI_ENET2_IRQ_ACK 74 |
| |
| #define OSI_PROM_IFACE 76 |
| #define kPromClose 0 |
| #define kPromPeer 1 |
| #define kPromChild 2 |
| #define kPromParent 3 |
| #define kPromPackageToPath 4 |
| #define kPromGetPropLen 5 |
| #define kPromGetProp 6 |
| #define kPromNextProp 7 |
| #define kPromSetProp 8 |
| #define kPromChangePHandle 9 |
| |
| #define OSI_PROM_PATH_IFACE 77 |
| #define kPromCreateNode 16 |
| #define kPromFindDevice 17 |
| |
| #define OSI_BOOT_HELPER 78 |
| #define kBootHAscii2Unicode 32 |
| #define kBootHUnicode2Ascii 33 |
| #define kBootHGetStrResInd 34 /* key, buf, len -- buf */ |
| #define kBootHGetRAMSize 35 /* -- ramsize */ |
| |
| #define OSI_ABLK_RING_SETUP 79 |
| #define OSI_ABLK_CNTRL 80 |
| #define OSI_ABLK_DISK_INFO 81 |
| #define OSI_ABLK_KICK 82 |
| #define OSI_ABLK_IRQ_ACK 83 |
| #define OSI_ABLK_SYNC_READ 84 |
| #define OSI_ABLK_SYNC_WRITE 85 |
| #define OSI_ABLK_BLESS_DISK 86 |
| |
| #define OSI_EMUACCEL 89 /* EMULATE_xxx, nip -- index */ |
| #define OSI_MAPIN_MREGS 90 /* mphys */ |
| #define OSI_NVRAM_SIZE 91 |
| |
| #define OSI_MTICKS_TO_USECS 92 |
| #define OSI_USECS_TO_MTICKS 93 |
| |
| /* obsolete OSI_BLK 94-95 */ |
| |
| #define OSI_PSEUDO_FS 96 |
| #define kPseudoFSOpen 1 |
| #define kPseudoFSClose 2 |
| #define kPseudoFSGetSize 3 |
| #define kPseudoFSRead 4 |
| #define kPseudoFSIndex2Name 5 |
| |
| #define OSI_TTY_PUTC 97 |
| #define OSI_TTY_GETC 98 |
| #define OSI_TTY_IRQ_ACK 99 |
| |
| #define NUM_OSI_SELECTORS 100 /* remember to increase this... */ |
| |
| #endif /* _H_OSI */ |