|
|
1.1 ! root 1: /* ! 2: * Creation Date: <1999/03/18 03:19:43 samuel> ! 3: * Time-stamp: <2003/12/26 16:58:19 samuel> ! 4: * ! 5: * <os_interface.h> ! 6: * ! 7: * This file includes definitions for drivers ! 8: * running in the "emulated" OS. (Mainly the 'sc' ! 9: * mechanism of communicating) ! 10: * ! 11: * Copyright (C) 1999, 2000, 2001, 2002, 2003 Samuel Rydh ([email protected]) ! 12: * ! 13: * This program is free software; you can redistribute it and/or ! 14: * modify it under the terms of the GNU General Public License ! 15: * as published by the Free Software Foundation ! 16: * ! 17: */ ! 18: ! 19: #ifndef _H_OSI ! 20: #define _H_OSI ! 21: ! 22: /* Magic register values loaded into r3 and r4 before the 'sc' assembly instruction */ ! 23: #define OSI_SC_MAGIC_R3 0x113724FA ! 24: #define OSI_SC_MAGIC_R4 0x77810F9B ! 25: ! 26: ! 27: /************************************************************************/ ! 28: /* Selectors (passed in r5) */ ! 29: /************************************************************************/ ! 30: ! 31: #define OSI_CALL_AVAILABLE 0 ! 32: #define OSI_DEBUGGER 1 /* enter debugger */ ! 33: /* obsolete OSI_LOG_STR 3 */ ! 34: #define OSI_CMOUNT_DRV_VOL 4 /* conditionally mount driver volume */ ! 35: /* obsolete OSI_SCSI_xxx 5-6 */ ! 36: #define OSI_GET_GMT_TIME 7 ! 37: #define OSI_MOUSE_CNTRL 8 ! 38: #define OSI_GET_LOCALTIME 9 /* return time in secs from 01/01/04 */ ! 39: ! 40: #define OSI_ENET_OPEN 10 ! 41: #define OSI_ENET_CLOSE 11 ! 42: #define OSI_ENET_GET_ADDR 12 ! 43: #define OSI_ENET_GET_STATUS 13 ! 44: #define OSI_ENET_CONTROL 14 ! 45: #define OSI_ENET_ADD_MULTI 16 ! 46: #define OSI_ENET_DEL_MULTI 17 ! 47: #define OSI_ENET_GET_PACKET 18 ! 48: #define OSI_ENET_SEND_PACKET 19 ! 49: ! 50: #define OSI_OF_INTERFACE 20 ! 51: #define OSI_OF_TRAP 21 ! 52: #define OSI_OF_RTAS 22 ! 53: ! 54: #define OSI_SCSI_CNTRL 23 ! 55: #define OSI_SCSI_SUBMIT 24 ! 56: #define OSI_SCSI_ACK 25 ! 57: ! 58: #define OSI_GET_MOUSE 26 /* -- r3 status, r4-r8 mouse data */ ! 59: #define OSI_ACK_MOUSE_IRQ 27 /* -- int */ ! 60: ! 61: #define OSI_SET_VMODE 28 /* modeID, depth -- error */ ! 62: #define OSI_GET_VMODE_INFO 29 /* mode, depth -- r3 status, r4-r9 pb */ ! 63: #define OSI_GET_MOUSE_DPI 30 /* -- mouse_dpi */ ! 64: ! 65: #define OSI_SET_VIDEO_POWER 31 ! 66: #define OSI_GET_FB_INFO 32 /* void -- r3 status, r4-r8 video data */ ! 67: ! 68: #define OSI_SOUND_WRITE 33 ! 69: /* #define OSI_SOUND_FORMAT 34 */ ! 70: #define OSI_SOUND_SET_VOLUME 35 ! 71: #define OSI_SOUND_CNTL 36 ! 72: /* obsolete OSI_SOUND call 37 */ ! 73: ! 74: #define OSI_VIDEO_ACK_IRQ 38 ! 75: #define OSI_VIDEO_CNTRL 39 ! 76: ! 77: #define OSI_SOUND_IRQ_ACK 40 ! 78: #define OSI_SOUND_START_STOP 41 ! 79: ! 80: #define OSI_REGISTER_IRQ 42 /* reg_property[0] appl_int -- irq_cookie */ ! 81: /* obsolete OSI_IRQ 43-46 */ ! 82: ! 83: #define OSI_LOG_PUTC 47 /* char -- */ ! 84: ! 85: #define OSI_KBD_CNTRL 50 ! 86: #define OSI_GET_ADB_KEY 51 /* -- adb_keycode (keycode | keycode_id in r4) */ ! 87: ! 88: #define OSI_WRITE_NVRAM_BYTE 52 /* offs, byte -- */ ! 89: #define OSI_READ_NVRAM_BYTE 53 /* offs -- byte */ ! 90: ! 91: #define OSI_EXIT 54 ! 92: ! 93: #define OSI_KEYCODE_TO_ADB 55 /* (keycode | keycode_id) -- adb_keycode */ ! 94: #define OSI_MAP_ADB_KEY 56 /* keycode, adbcode -- */ ! 95: #define OSI_SAVE_KEYMAPPING 57 /* -- */ ! 96: #define OSI_USLEEP 58 /* usecs -- */ ! 97: #define OSI_SET_COLOR 59 /* index value -- */ ! 98: ! 99: #define OSI_PIC_MASK_IRQ 60 /* irq -- */ ! 100: #define OSI_PIC_UNMASK_IRQ 61 /* irq -- */ ! 101: #define OSI_PIC_ACK_IRQ 62 /* irq mask_flag -- */ ! 102: #define OSI_PIC_GET_ACTIVE_IRQ 63 ! 103: ! 104: #define OSI_GET_COLOR 64 /* index -- value */ ! 105: ! 106: /* 65-67 old ablk implementation */ ! 107: #define OSI_IRQTEST 65 ! 108: ! 109: #define OSI_ENET2_OPEN 68 ! 110: #define OSI_ENET2_CLOSE 69 ! 111: #define OSI_ENET2_CNTRL 70 ! 112: #define OSI_ENET2_RING_SETUP 71 ! 113: #define OSI_ENET2_KICK 72 ! 114: #define OSI_ENET2_GET_HWADDR 73 ! 115: #define OSI_ENET2_IRQ_ACK 74 ! 116: ! 117: #define OSI_PROM_IFACE 76 ! 118: #define kPromClose 0 ! 119: #define kPromPeer 1 ! 120: #define kPromChild 2 ! 121: #define kPromParent 3 ! 122: #define kPromPackageToPath 4 ! 123: #define kPromGetPropLen 5 ! 124: #define kPromGetProp 6 ! 125: #define kPromNextProp 7 ! 126: #define kPromSetProp 8 ! 127: #define kPromChangePHandle 9 ! 128: ! 129: #define OSI_PROM_PATH_IFACE 77 ! 130: #define kPromCreateNode 16 ! 131: #define kPromFindDevice 17 ! 132: ! 133: #define OSI_BOOT_HELPER 78 ! 134: #define kBootHAscii2Unicode 32 ! 135: #define kBootHUnicode2Ascii 33 ! 136: #define kBootHGetStrResInd 34 /* key, buf, len -- buf */ ! 137: #define kBootHGetRAMSize 35 /* -- ramsize */ ! 138: ! 139: #define OSI_ABLK_RING_SETUP 79 ! 140: #define OSI_ABLK_CNTRL 80 ! 141: #define OSI_ABLK_DISK_INFO 81 ! 142: #define OSI_ABLK_KICK 82 ! 143: #define OSI_ABLK_IRQ_ACK 83 ! 144: #define OSI_ABLK_SYNC_READ 84 ! 145: #define OSI_ABLK_SYNC_WRITE 85 ! 146: #define OSI_ABLK_BLESS_DISK 86 ! 147: ! 148: #define OSI_EMUACCEL 89 /* EMULATE_xxx, nip -- index */ ! 149: #define OSI_MAPIN_MREGS 90 /* mphys */ ! 150: #define OSI_NVRAM_SIZE 91 ! 151: ! 152: #define OSI_MTICKS_TO_USECS 92 ! 153: #define OSI_USECS_TO_MTICKS 93 ! 154: ! 155: /* obsolete OSI_BLK 94-95 */ ! 156: ! 157: #define OSI_PSEUDO_FS 96 ! 158: #define kPseudoFSOpen 1 ! 159: #define kPseudoFSClose 2 ! 160: #define kPseudoFSGetSize 3 ! 161: #define kPseudoFSRead 4 ! 162: #define kPseudoFSIndex2Name 5 ! 163: ! 164: #define OSI_TTY_PUTC 97 ! 165: #define OSI_TTY_GETC 98 ! 166: #define OSI_TTY_IRQ_ACK 99 ! 167: ! 168: #define NUM_OSI_SELECTORS 100 /* remember to increase this... */ ! 169: ! 170: #endif /* _H_OSI */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.