00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _MINIX_COM_H
00028 #define _MINIX_COM_H
00029
00030
00031
00032
00033
00034
00035 #define ANY 0x7ace
00036 #define NONE 0x6ace
00037 #define SELF 0x8ace
00038 #define _MAX_MAGIC_PROC (SELF)
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #define IDLE -4
00054 #define CLOCK -3
00055 #define SYSTEM -2
00056 #define KERNEL -1
00057 #define HARDWARE KERNEL
00058
00059
00060 #define MAX_NR_TASKS 1023
00061 #define NR_TASKS 4
00062
00063
00064 #define PM_PROC_NR 0
00065 #define FS_PROC_NR 1
00066 #define VFS_PROC_NR FS_PROC_NR
00067 #define RS_PROC_NR 2
00068 #define MEM_PROC_NR 3
00069 #define LOG_PROC_NR 4
00070 #define TTY_PROC_NR 5
00071 #define DS_PROC_NR 6
00072 #define MFS_PROC_NR 7
00073 #define VM_PROC_NR 8
00074 #define PFS_PROC_NR 9
00075 #define INIT_PROC_NR 10
00076
00077
00078 #define ROOT_SYS_PROC_NR RS_PROC_NR
00079 #define ROOT_USR_PROC_NR INIT_PROC_NR
00080
00081
00082 #define NR_BOOT_PROCS (NR_TASKS + INIT_PROC_NR + 1)
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094 #define NOTIFY_MESSAGE 0x1000
00095
00096 #define is_notify(a) ((unsigned) ((a) - NOTIFY_MESSAGE) < 0x100)
00097 #define NOTIFY_FROM(p_nr) (NOTIFY_MESSAGE | ((p_nr) + NR_TASKS))
00098
00099
00100 #define NOTIFY_ARG m2_l1
00101 #define NOTIFY_TIMESTAMP m2_l2
00102
00103
00104
00105
00106 #define BUSC_RQ_BASE 0x300
00107 #define BUSC_RS_BASE 0x380
00108
00109 #define BUSC_PCI_INIT (BUSC_RQ_BASE + 0)
00110
00111
00112 #define BUSC_PCI_FIRST_DEV (BUSC_RQ_BASE + 1)
00113
00114
00115
00116 #define BUSC_PCI_NEXT_DEV (BUSC_RQ_BASE + 2)
00117
00118
00119
00120 #define BUSC_PCI_FIND_DEV (BUSC_RQ_BASE + 3)
00121
00122
00123
00124 #define BUSC_PCI_IDS (BUSC_RQ_BASE + 4)
00125
00126
00127 #define BUSC_PCI_DEV_NAME (BUSC_RQ_BASE + 5)
00128
00129
00130 #define BUSC_PCI_SLOT_NAME (BUSC_RQ_BASE + 6)
00131
00132
00133 #define BUSC_PCI_RESERVE (BUSC_RQ_BASE + 7)
00134 #define BUSC_PCI_ATTR_R8 (BUSC_RQ_BASE + 8)
00135
00136
00137 #define BUSC_PCI_ATTR_R16 (BUSC_RQ_BASE + 9)
00138
00139
00140 #define BUSC_PCI_ATTR_R32 (BUSC_RQ_BASE + 10)
00141
00142
00143 #define BUSC_PCI_ATTR_W8 (BUSC_RQ_BASE + 11)
00144
00145
00146 #define BUSC_PCI_ATTR_W16 (BUSC_RQ_BASE + 12)
00147
00148
00149 #define BUSC_PCI_ATTR_W32 (BUSC_RQ_BASE + 13)
00150
00151
00152 #define BUSC_PCI_RESCAN (BUSC_RQ_BASE + 14)
00153 #define BUSC_PCI_DEV_NAME_S (BUSC_RQ_BASE + 15)
00154
00155
00156
00157 #define BUSC_PCI_SLOT_NAME_S (BUSC_RQ_BASE + 16)
00158
00159
00160 #define BUSC_PCI_SET_ACL (BUSC_RQ_BASE + 17)
00161
00162
00163 #define BUSC_PCI_DEL_ACL (BUSC_RQ_BASE + 18)
00164
00165
00166 #define IOMMU_MAP (BUSC_RQ_BASE + 32)
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177 #define DEV_RQ_BASE 0x400
00178 #define DEV_RS_BASE 0x500
00179
00180 #define CANCEL (DEV_RQ_BASE + 0)
00181 #define DEV_OPEN (DEV_RQ_BASE + 6)
00182 #define DEV_CLOSE (DEV_RQ_BASE + 7)
00183 #define TTY_SETPGRP (DEV_RQ_BASE + 10)
00184 #define TTY_EXIT (DEV_RQ_BASE + 11)
00185 #define DEV_SELECT (DEV_RQ_BASE + 12)
00186 #define DEV_STATUS (DEV_RQ_BASE + 13)
00187 #define DEV_REOPEN (DEV_RQ_BASE + 14)
00188
00189 #define DEV_READ_S (DEV_RQ_BASE + 20)
00190 #define DEV_WRITE_S (DEV_RQ_BASE + 21)
00191 #define DEV_SCATTER_S (DEV_RQ_BASE + 22)
00192 #define DEV_GATHER_S (DEV_RQ_BASE + 23)
00193 #define DEV_IOCTL_S (DEV_RQ_BASE + 24)
00194 #define DEV_MMAP_S (DEV_RQ_BASE + 25)
00195
00196 #define DEV_REPLY (DEV_RS_BASE + 0)
00197 #define DEV_CLONED (DEV_RS_BASE + 1)
00198 #define DEV_REVIVE (DEV_RS_BASE + 2)
00199 #define DEV_IO_READY (DEV_RS_BASE + 3)
00200 #define DEV_NO_STATUS (DEV_RS_BASE + 4)
00201 #define DEV_REOPEN_REPL (DEV_RS_BASE + 5)
00202 #define DEV_CLOSE_REPL (DEV_RS_BASE + 6)
00203 #define DEV_SEL_REPL1 (DEV_RS_BASE + 7)
00204 #define DEV_SEL_REPL2 (DEV_RS_BASE + 8)
00205
00206
00207 #define DEVICE m2_i1
00208 #define IO_ENDPT m2_i2
00209 #define COUNT m2_i3
00210 #define REQUEST m2_i3
00211 #define POSITION m2_l1
00212 #define HIGHPOS m2_l2
00213 #define ADDRESS m2_p1
00214 #define IO_GRANT m2_p1
00215
00216
00217 #define DEV_MINOR m2_i1
00218 #define DEV_SEL_OPS m2_i2
00219
00220
00221 #define REP_ENDPT m2_i1
00222 #define REP_STATUS m2_i2
00223 #define REP_IO_GRANT m2_i3
00224 # define SUSPEND -998
00225
00226
00227 #define TTY_LINE DEVICE
00228 #define TTY_REQUEST COUNT
00229 #define TTY_SPEK POSITION
00230 #define TTY_PGRP m2_i3
00231
00232
00233 #define TAPE_STAT0 m2_l1
00234 #define TAPE_STAT1 m2_l2
00235
00236
00237
00238
00239
00240
00241 #define NW_OPEN DEV_OPEN
00242 #define NW_CLOSE DEV_CLOSE
00243 #define NW_READ DEV_READ
00244 #define NW_WRITE DEV_WRITE
00245 #define NW_IOCTL DEV_IOCTL
00246 #define NW_CANCEL CANCEL
00247
00248
00249 #define DL_RQ_BASE 0x200
00250 #define DL_RS_BASE 0x280
00251
00252
00253 #define DL_WRITE (DL_RQ_BASE + 3)
00254 #define DL_WRITEV (DL_RQ_BASE + 4)
00255 #define DL_READ (DL_RQ_BASE + 5)
00256 #define DL_READV (DL_RQ_BASE + 6)
00257 #define DL_CONF (DL_RQ_BASE + 7)
00258 #define DL_STOP (DL_RQ_BASE + 8)
00259 #define DL_GETSTAT (DL_RQ_BASE + 9)
00260 #define DL_GETNAME (DL_RQ_BASE +10)
00261 #define DL_WRITEV_S (DL_RQ_BASE +11)
00262 #define DL_READV_S (DL_RQ_BASE +12)
00263 #define DL_GETSTAT_S (DL_RQ_BASE +13)
00264
00265
00266 #define DL_CONF_REPLY (DL_RS_BASE + 20)
00267 #define DL_TASK_REPLY (DL_RS_BASE + 21)
00268 #define DL_NAME_REPLY (DL_RS_BASE + 22)
00269 #define DL_STAT_REPLY (DL_RS_BASE + 23)
00270
00271
00272 #define DL_PORT m2_i1
00273 #define DL_PROC m2_i2
00274 #define DL_COUNT m2_i3
00275 #define DL_MODE m2_l1
00276 #define DL_CLCK m2_l2
00277 #define DL_ADDR m2_p1
00278 #define DL_STAT m2_l1
00279 #define DL_GRANT m2_l2
00280 #define DL_NAME m3_ca1
00281
00282
00283 # define DL_PACK_SEND 0x01
00284 # define DL_PACK_RECV 0x02
00285 # define DL_READ_IP 0x04
00286
00287
00288 # define DL_NOMODE 0x0
00289 # define DL_PROMISC_REQ 0x2
00290 # define DL_MULTI_REQ 0x4
00291 # define DL_BROAD_REQ 0x8
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301 #define KERNEL_CALL 0x600
00302
00303 # define SYS_FORK (KERNEL_CALL + 0)
00304 # define SYS_EXEC (KERNEL_CALL + 1)
00305 # define SYS_EXIT (KERNEL_CALL + 2)
00306 # define SYS_NICE (KERNEL_CALL + 3)
00307 # define SYS_PRIVCTL (KERNEL_CALL + 4)
00308 # define SYS_TRACE (KERNEL_CALL + 5)
00309 # define SYS_KILL (KERNEL_CALL + 6)
00310
00311 # define SYS_GETKSIG (KERNEL_CALL + 7)
00312 # define SYS_ENDKSIG (KERNEL_CALL + 8)
00313 # define SYS_SIGSEND (KERNEL_CALL + 9)
00314 # define SYS_SIGRETURN (KERNEL_CALL + 10)
00315
00316 # define SYS_NEWMAP (KERNEL_CALL + 11)
00317 # define SYS_SEGCTL (KERNEL_CALL + 12)
00318 # define SYS_MEMSET (KERNEL_CALL + 13)
00319
00320 # define SYS_UMAP (KERNEL_CALL + 14)
00321 # define SYS_VIRCOPY (KERNEL_CALL + 15)
00322 # define SYS_PHYSCOPY (KERNEL_CALL + 16)
00323
00324 # define SYS_IRQCTL (KERNEL_CALL + 19)
00325 # define SYS_INT86 (KERNEL_CALL + 20)
00326 # define SYS_DEVIO (KERNEL_CALL + 21)
00327 # define SYS_SDEVIO (KERNEL_CALL + 22)
00328 # define SYS_VDEVIO (KERNEL_CALL + 23)
00329
00330 # define SYS_SETALARM (KERNEL_CALL + 24)
00331 # define SYS_TIMES (KERNEL_CALL + 25)
00332 # define SYS_GETINFO (KERNEL_CALL + 26)
00333 # define SYS_ABORT (KERNEL_CALL + 27)
00334 # define SYS_IOPENABLE (KERNEL_CALL + 28)
00335 # define SYS_SAFECOPYFROM (KERNEL_CALL + 31)
00336 # define SYS_SAFECOPYTO (KERNEL_CALL + 32)
00337 # define SYS_VSAFECOPY (KERNEL_CALL + 33)
00338 # define SYS_SETGRANT (KERNEL_CALL + 34)
00339 # define SYS_READBIOS (KERNEL_CALL + 35)
00340
00341 # define SYS_SPROF (KERNEL_CALL + 36)
00342 # define SYS_CPROF (KERNEL_CALL + 37)
00343 # define SYS_PROFBUF (KERNEL_CALL + 38)
00344
00345 # define SYS_STIME (KERNEL_CALL + 39)
00346
00347 # define SYS_VMCTL (KERNEL_CALL + 43)
00348 # define SYS_SYSCTL (KERNEL_CALL + 44)
00349
00350 # define SYS_VTIMER (KERNEL_CALL + 45)
00351 # define SYS_RUNCTL (KERNEL_CALL + 46)
00352 # define SYS_SAFEMAP (KERNEL_CALL + 47)
00353 # define SYS_SAFEREVMAP (KERNEL_CALL + 48)
00354 # define SYS_SAFEUNMAP (KERNEL_CALL + 49)
00355
00356 #define NR_SYS_CALLS 50
00357 #define SYS_CALL_MASK_SIZE BITMAP_CHUNKS(NR_SYS_CALLS)
00358
00359
00360 #define MEM_PTR m2_p1
00361 #define MEM_COUNT m2_l1
00362 #define MEM_PATTERN m2_l2
00363
00364
00365 #define DIO_REQUEST m2_i3
00366 # define _DIO_INPUT 0x001
00367 # define _DIO_OUTPUT 0x002
00368 # define _DIO_DIRMASK 0x00f
00369 # define _DIO_BYTE 0x010
00370 # define _DIO_WORD 0x020
00371 # define _DIO_LONG 0x030
00372 # define _DIO_TYPEMASK 0x0f0
00373 # define _DIO_SAFE 0x100
00374 # define _DIO_SAFEMASK 0xf00
00375 # define DIO_INPUT_BYTE (_DIO_INPUT|_DIO_BYTE)
00376 # define DIO_INPUT_WORD (_DIO_INPUT|_DIO_WORD)
00377 # define DIO_INPUT_LONG (_DIO_INPUT|_DIO_LONG)
00378 # define DIO_OUTPUT_BYTE (_DIO_OUTPUT|_DIO_BYTE)
00379 # define DIO_OUTPUT_WORD (_DIO_OUTPUT|_DIO_WORD)
00380 # define DIO_OUTPUT_LONG (_DIO_OUTPUT|_DIO_LONG)
00381 # define DIO_SAFE_INPUT_BYTE (_DIO_INPUT|_DIO_BYTE|_DIO_SAFE)
00382 # define DIO_SAFE_INPUT_WORD (_DIO_INPUT|_DIO_WORD|_DIO_SAFE)
00383 # define DIO_SAFE_INPUT_LONG (_DIO_INPUT|_DIO_LONG|_DIO_SAFE)
00384 # define DIO_SAFE_OUTPUT_BYTE (_DIO_OUTPUT|_DIO_BYTE|_DIO_SAFE)
00385 # define DIO_SAFE_OUTPUT_WORD (_DIO_OUTPUT|_DIO_WORD|_DIO_SAFE)
00386 # define DIO_SAFE_OUTPUT_LONG (_DIO_OUTPUT|_DIO_LONG|_DIO_SAFE)
00387 #define DIO_PORT m2_l1
00388 #define DIO_VALUE m2_l2
00389 #define DIO_VEC_ADDR m2_p1
00390 #define DIO_VEC_SIZE m2_l2
00391 #define DIO_VEC_ENDPT m2_i2
00392 #define DIO_OFFSET m2_i1
00393
00394
00395 #define ALRM_EXP_TIME m2_l1
00396 #define ALRM_ABS_TIME m2_i2
00397 #define ALRM_TIME_LEFT m2_l1
00398
00399
00400 #define IRQ_REQUEST m5_s1
00401 # define IRQ_SETPOLICY 1
00402 # define IRQ_RMPOLICY 2
00403 # define IRQ_ENABLE 3
00404 # define IRQ_DISABLE 4
00405 #define IRQ_VECTOR m5_s2
00406 #define IRQ_POLICY m5_i1
00407 # define IRQ_REENABLE 0x001
00408 # define IRQ_BYTE 0x100
00409 # define IRQ_WORD 0x200
00410 # define IRQ_LONG 0x400
00411 #define IRQ_HOOK_ID m5_l3
00412
00413
00414 #define SEG_SELECT m4_l1
00415 #define SEG_OFFSET m4_l2
00416 #define SEG_PHYS m4_l3
00417 #define SEG_SIZE m4_l4
00418 #define SEG_INDEX m4_l5
00419
00420
00421 #define ABRT_HOW m1_i1
00422 #define ABRT_MON_ENDPT m1_i2
00423 #define ABRT_MON_LEN m1_i3
00424 #define ABRT_MON_ADDR m1_p1
00425
00426
00427 #define CP_SRC_SPACE m5_s1
00428 #define CP_SRC_ENDPT m5_i1
00429 #define CP_SRC_ADDR m5_l1
00430 #define CP_DST_SPACE m5_s2
00431 #define CP_DST_ENDPT m5_i2
00432 #define CP_DST_ADDR m5_l2
00433 #define CP_NR_BYTES m5_l3
00434
00435
00436 #define I_REQUEST m7_i3
00437 # define GET_KINFO 0
00438 # define GET_IMAGE 1
00439 # define GET_PROCTAB 2
00440 # define GET_RANDOMNESS 3
00441 # define GET_MONPARAMS 4
00442 # define GET_KENV 5
00443 # define GET_IRQHOOKS 6
00444 # define GET_KMESSAGES 7
00445 # define GET_PRIVTAB 8
00446 # define GET_KADDRESSES 9
00447 # define GET_SCHEDINFO 10
00448 # define GET_PROC 11
00449 # define GET_MACHINE 12
00450 # define GET_LOCKTIMING 13
00451 # define GET_BIOSBUFFER 14
00452 # define GET_LOADINFO 15
00453 # define GET_IRQACTIDS 16
00454 # define GET_PRIV 17
00455 # define GET_HZ 18
00456 # define GET_WHOAMI 19
00457 # define GET_RANDOMNESS_BIN 20
00458 # define GET_IDLETSC 21
00459 # define GET_AOUTHEADER 22
00460 #define I_ENDPT m7_i4
00461 #define I_VAL_PTR m7_p1
00462 #define I_VAL_LEN m7_i1
00463 #define I_VAL_PTR2 m7_p2
00464 #define I_VAL_LEN2_E m7_i2
00465
00466
00467 #define GIWHO_EP m3_i1
00468 #define GIWHO_NAME m3_ca1
00469
00470
00471 #define T_ENDPT m4_l1
00472 #define T_USER_TIME m4_l1
00473 #define T_SYSTEM_TIME m4_l2
00474 #define T_BOOTTIME m4_l3
00475 #define T_BOOT_TICKS m4_l5
00476
00477
00478 #define CTL_ENDPT m2_i1
00479 #define CTL_REQUEST m2_i2
00480 #define CTL_ARG_PTR m2_p1
00481 #define CTL_ADDRESS m2_l1
00482 #define CTL_DATA m2_l2
00483
00484
00485 #define CTL_PHYSSTART m2_l1
00486 #define CTL_PHYSLEN m2_l2
00487
00488
00489 #define SYS_PRIV_ALLOW 1
00490 #define SYS_PRIV_DISALLOW 2
00491 #define SYS_PRIV_SET_SYS 3
00492 #define SYS_PRIV_SET_USER 4
00493 #define SYS_PRIV_ADD_IO 5
00494 #define SYS_PRIV_ADD_MEM 6
00495
00496 #define SYS_PRIV_ADD_IRQ 7
00497 #define SYS_PRIV_QUERY_MEM 8
00498
00499
00500 #define SG_ADDR m2_p1
00501 #define SG_SIZE m2_i2
00502
00503
00504 #define SIG_ENDPT m2_i1
00505 #define SIG_NUMBER m2_i2
00506 #define SIG_FLAGS m2_i3
00507 #define SIG_MAP m2_l1
00508 #define SIG_CTXT_PTR m2_p1
00509
00510
00511 #define PR_ENDPT m1_i1
00512 #define PR_PRIORITY m1_i2
00513 #define PR_SLOT m1_i2
00514 #define PR_STACK_PTR m1_p1
00515 #define PR_NAME_PTR m1_p2
00516 #define PR_IP_PTR m1_p3
00517 #define PR_MEM_PTR m1_p1
00518
00519
00520 #define PR_FORK_FLAGS m1_i3
00521 #define PR_FORK_MSGADDR m1_p1
00522
00523
00524 #define PFF_VMINHIBIT 0x01
00525
00526
00527 #define INT86_REG86 m1_p1
00528
00529
00530 #define SCP_FROM_TO m2_i1
00531 #define SCP_SEG m2_i2
00532 #define SCP_GID m2_i3
00533 #define SCP_OFFSET m2_l1
00534 #define SCP_ADDRESS m2_p1
00535 #define SCP_BYTES m2_l2
00536
00537
00538 #define VSCP_VEC_ADDR m2_p1
00539 #define VSCP_VEC_SIZE m2_l2
00540
00541
00542 #define SMAP_EP m2_i1
00543 #define SMAP_GID m2_i2
00544 #define SMAP_OFFSET m2_i3
00545 #define SMAP_SEG m2_p1
00546 #define SMAP_ADDRESS m2_l1
00547 #define SMAP_BYTES m2_l2
00548 #define SMAP_FLAG m2_s1
00549
00550
00551 #define PROF_ACTION m7_i1
00552 #define PROF_MEM_SIZE m7_i2
00553 #define PROF_FREQ m7_i3
00554 #define PROF_ENDPT m7_i4
00555 #define PROF_CTL_PTR m7_p1
00556 #define PROF_MEM_PTR m7_p2
00557
00558
00559 #define RDB_SIZE m2_i1
00560 #define RDB_ADDR m2_l1
00561 #define RDB_BUF m2_p1
00562
00563
00564 #define SVMCTL_WHO m1_i1
00565 #define SVMCTL_PARAM m1_i2
00566 #define SVMCTL_VALUE m1_i3
00567 #define SVMCTL_PF_WHO m1_i1
00568 #define SVMCTL_PF_I386_CR2 m1_i2
00569 #define SVMCTL_PF_I386_ERR m1_i3
00570 #define SVMCTL_MRG_TARGET m2_i1
00571 #define SVMCTL_MRG_ADDR m2_i2
00572 #define SVMCTL_MRG_LENGTH m2_i3
00573 #define SVMCTL_MRG_FLAG m2_s1
00574 #define SVMCTL_MRG_EP2 m2_l1
00575 #define SVMCTL_MRG_ADDR2 m2_l2
00576 #define SVMCTL_MRG_REQUESTOR m2_p1
00577 #define SVMCTL_MAP_VIR_ADDR m1_p1
00578
00579
00580 #define SVMCTL_MAP_FLAGS m2_i1
00581 #define SVMCTL_MAP_PHYS_ADDR m2_l1
00582 #define SVMCTL_MAP_PHYS_LEN m2_l2
00583
00584 #define VMMF_UNCACHED (1L << 0)
00585
00586
00587 #define VMCTL_I386_SETCR3 10
00588 #define VMCTL_GET_PAGEFAULT 11
00589 #define VMCTL_CLEAR_PAGEFAULT 12
00590 #define VMCTL_I386_GETCR3 13
00591 #define VMCTL_MEMREQ_GET 14
00592 #define VMCTL_MEMREQ_REPLY 15
00593 #define VMCTL_INCSP 16
00594 #define VMCTL_NOPAGEZERO 18
00595 #define VMCTL_I386_KERNELLIMIT 19
00596 #define VMCTL_I386_PAGEDIRS 20
00597 #define VMCTL_I386_FREEPDE 23
00598 #define VMCTL_ENABLE_PAGING 24
00599 #define VMCTL_I386_INVLPG 25
00600 #define VMCTL_FLUSHTLB 26
00601 #define VMCTL_KERN_PHYSMAP 27
00602 #define VMCTL_KERN_MAP_REPLY 28
00603
00604
00605 #define SYSCTL_CODE m1_i1
00606 #define SYSCTL_ARG1 m1_p1
00607 #define SYSCTL_ARG2 m1_i2
00608 #define SYSCTL_CODE_DIAG 1
00609 #define SYSCTL_CODE_STACKTRACE 2
00610 #define DIAG_BUFSIZE (80*25)
00611
00612
00613 #define VT_WHICH m2_i1
00614 # define VT_VIRTUAL 1
00615 # define VT_PROF 2
00616 #define VT_SET m2_i2
00617 #define VT_VALUE m2_l1
00618 #define VT_ENDPT m2_l2
00619
00620
00621 #define RC_ENDPT m1_i1
00622 #define RC_ACTION m1_i2
00623 # define RC_STOP 0
00624 # define RC_RESUME 1
00625 #define RC_FLAGS m1_i3
00626 # define RC_DELAY 1
00627
00628
00629
00630
00631
00632 #define RS_RQ_BASE 0x700
00633
00634 #define RS_UP (RS_RQ_BASE + 0)
00635 #define RS_DOWN (RS_RQ_BASE + 1)
00636 #define RS_REFRESH (RS_RQ_BASE + 2)
00637 #define RS_RESTART (RS_RQ_BASE + 3)
00638 #define RS_SHUTDOWN (RS_RQ_BASE + 4)
00639 #define RS_UPDATE (RS_RQ_BASE + 5)
00640
00641 #define RS_LOOKUP (RS_RQ_BASE + 8)
00642
00643 #define RS_INIT (RS_RQ_BASE + 20)
00644 #define RS_LU_PREPARE (RS_RQ_BASE + 21)
00645
00646 # define RS_CMD_ADDR m1_p1
00647 # define RS_CMD_LEN m1_i1
00648 # define RS_PERIOD m1_i2
00649 # define RS_DEV_MAJOR m1_i3
00650
00651 # define RS_ENDPOINT m1_i1
00652
00653 # define RS_NAME m1_p1
00654 # define RS_NAME_LEN m1_i1
00655
00656 # define RS_INIT_RESULT m1_i1
00657 # define RS_INIT_TYPE m1_i2
00658 # define RS_INIT_RPROCTAB_GID m1_i3
00659
00660 # define RS_LU_RESULT m1_i1
00661 # define RS_LU_STATE m1_i2
00662 # define RS_LU_PREPARE_MAXTIME m1_i3
00663
00664
00665
00666
00667
00668 #define DS_RQ_BASE 0x800
00669
00670 #define DS_PUBLISH (DS_RQ_BASE + 0)
00671 #define DS_RETRIEVE (DS_RQ_BASE + 1)
00672 #define DS_SUBSCRIBE (DS_RQ_BASE + 2)
00673 #define DS_CHECK (DS_RQ_BASE + 3)
00674 #define DS_DELETE (DS_RQ_BASE + 4)
00675 #define DS_SNAPSHOT (DS_RQ_BASE + 5)
00676 #define DS_RETRIEVE_LABEL (DS_RQ_BASE + 6)
00677
00678
00679 # define DS_KEY_GRANT m2_i1
00680 # define DS_KEY_LEN m2_s1
00681 # define DS_FLAGS m2_i2
00682
00683 # define DS_VAL m2_l1
00684 # define DS_VAL_LEN m2_l2
00685 # define DS_NR_SNAPSHOT m2_i3
00686 # define DS_STRING m2_i3
00687
00688
00689
00690
00691
00692
00693 #define FKEY_CONTROL 98
00694 # define FKEY_REQUEST m2_i1
00695 # define FKEY_MAP 10
00696 # define FKEY_UNMAP 11
00697 # define FKEY_EVENTS 12
00698 # define FKEY_FKEYS m2_l1
00699 # define FKEY_SFKEYS m2_l2
00700 #define DIAG_BASE 0xa00
00701 #define DIAGNOSTICS_OLD (DIAG_BASE+1)
00702 #define DIAGNOSTICS_S_OLD (DIAG_BASE+2)
00703 # define DIAG_PRINT_BUF_G m1_p1
00704 # define DIAG_BUF_COUNT m1_i1
00705 #define GET_KMESS (DIAG_BASE+3)
00706 # define GETKM_PTR m1_p1
00707 #define GET_KMESS_S (DIAG_BASE+4)
00708 # define GETKM_GRANT m1_i1
00709 #define ASYN_DIAGNOSTICS_OLD (DIAG_BASE+5)
00710
00711 #define DIAG_REPL_OLD (DIAG_BASE+0x80+0)
00712
00713
00714
00715
00716
00717 #define PM_RQ_BASE 0x900
00718 #define PM_RS_BASE 0x980
00719
00720
00721 #define PM_INIT (PM_RQ_BASE + 0)
00722 #define PM_SETUID (PM_RQ_BASE + 1)
00723 #define PM_SETGID (PM_RQ_BASE + 2)
00724 #define PM_SETSID (PM_RQ_BASE + 3)
00725 #define PM_EXIT (PM_RQ_BASE + 4)
00726 #define PM_DUMPCORE (PM_RQ_BASE + 5)
00727 #define PM_EXEC (PM_RQ_BASE + 6)
00728 #define PM_FORK (PM_RQ_BASE + 7)
00729 #define PM_FORK_NB (PM_RQ_BASE + 8)
00730 #define PM_UNPAUSE (PM_RQ_BASE + 9)
00731 #define PM_REBOOT (PM_RQ_BASE + 10)
00732 #define PM_SETGROUPS (PM_RQ_BASE + 11)
00733
00734
00735 #define PM_SETUID_REPLY (PM_RS_BASE + 1)
00736 #define PM_SETGID_REPLY (PM_RS_BASE + 2)
00737 #define PM_SETSID_REPLY (PM_RS_BASE + 3)
00738 #define PM_EXIT_REPLY (PM_RS_BASE + 4)
00739 #define PM_CORE_REPLY (PM_RS_BASE + 5)
00740 #define PM_EXEC_REPLY (PM_RS_BASE + 6)
00741 #define PM_FORK_REPLY (PM_RS_BASE + 7)
00742 #define PM_FORK_NB_REPLY (PM_RS_BASE + 8)
00743 #define PM_UNPAUSE_REPLY (PM_RS_BASE + 9)
00744 #define PM_REBOOT_REPLY (PM_RS_BASE + 10)
00745 #define PM_SETGROUPS_REPLY (PM_RS_BASE + 11)
00746
00747
00748 # define PM_PROC m1_i1
00749
00750
00751 # define PM_SLOT m1_i2
00752 # define PM_PID m2_i3
00753
00754
00755 # define PM_EID m1_i2
00756 # define PM_RID m1_i3
00757
00758
00759 # define PM_GROUP_NO m1_i2
00760 # define PM_GROUP_ADDR m1_p1
00761
00762
00763 # define PM_PATH m1_p1
00764 # define PM_PATH_LEN m1_i2
00765
00766
00767 # define PM_FRAME m1_p2
00768 # define PM_FRAME_LEN m1_i3
00769
00770
00771 # define PM_STATUS m1_i2
00772
00773
00774 # define PM_PPROC m1_i2
00775 # define PM_CPID m1_i3
00776
00777
00778 #define EXC_NM_PROC m1_i1
00779 #define EXC_NM_PTR m1_p1
00780
00781
00782
00783
00784
00785 #define EXC_NM_RF_LOAD_TEXT 1
00786
00787
00788 #define EXC_NM_RF_ALLOW_SETUID 2
00789
00790
00791
00792 #define EXC_NM_RF_FULLVM 4
00793
00794
00795 #define EXC_RS_PROC m1_i1
00796 #define EXC_RS_RESULT m1_i2
00797
00798
00799
00800
00801
00802 #define VFS_BASE 0xA00
00803
00804
00805
00806
00807
00808
00809
00810
00811 #define VM_VFS_BASE 0xB00
00812 #define VM_VFS_OPEN (VM_VFS_BASE+0)
00813 # define VMVO_NAME_GRANT m2_i1
00814 # define VMVO_NAME_LENGTH m2_i2
00815 # define VMVO_FLAGS m2_i3
00816 # define VMVO_MODE m2_l1
00817 # define VMVO_ENDPOINT m2_l2
00818 #define VM_VFS_MMAP (VM_VFS_BASE+1)
00819 #define VM_VFS_CLOSE (VM_VFS_BASE+2)
00820 # define VMVC_FD m1_i1
00821 # define VMVC_ENDPOINT m1_i2
00822
00823
00824
00825
00826
00827
00828
00829 #define PMBRK_ADDR m1_p1
00830
00831
00832 #define PMTRACE_ADDR m2_l1
00833
00834 #define PM_ENDPT m1_i1
00835 #define PM_PENDPT m1_i2
00836
00837
00838 #define SIU_WHAT m2_i1
00839 #define SIU_LEN m2_i2
00840 #define SIU_WHERE m2_p1
00841
00842
00843 #define SEL_NFDS m8_i1
00844 #define SEL_READFDS m8_p1
00845 #define SEL_WRITEFDS m8_p2
00846 #define SEL_ERRORFDS m8_p3
00847 #define SEL_TIMEOUT m8_p4
00848
00849
00850
00851
00852 #define VM_RQ_BASE 0xC00
00853
00854
00855 #define VM_EXIT (VM_RQ_BASE+0)
00856 # define VME_ENDPOINT m1_i1
00857 #define VM_FORK (VM_RQ_BASE+1)
00858 # define VMF_ENDPOINT m1_i1
00859 # define VMF_SLOTNO m1_i2
00860 # define VMF_CHILD_ENDPOINT m1_i3
00861 #define VM_BRK (VM_RQ_BASE+2)
00862 # define VMB_ENDPOINT m1_i1
00863 # define VMB_ADDR m1_p1
00864 # define VMB_RETADDR m1_p2
00865 #define VM_EXEC_NEWMEM (VM_RQ_BASE+3)
00866 # define VMEN_ENDPOINT m1_i1
00867 # define VMEN_ARGSPTR m1_p1
00868 # define VMEN_ARGSSIZE m1_i2
00869 # define VMEN_FLAGS m1_i3
00870 # define VMEN_STACK_TOP m1_p2
00871 #define VM_PUSH_SIG (VM_RQ_BASE+4)
00872 # define VMPS_ENDPOINT m1_i1
00873 # define VMPS_OLD_SP m1_p1
00874 #define VM_WILLEXIT (VM_RQ_BASE+5)
00875 # define VMWE_ENDPOINT m1_i1
00876
00877
00878 #define VM_MMAP (VM_RQ_BASE+10)
00879 # define VMM_ADDR m5_l1
00880 # define VMM_LEN m5_l2
00881 # define VMM_PROT m5_s1
00882 # define VMM_FLAGS m5_s2
00883 # define VMM_FD m5_i1
00884 # define VMM_OFFSET m5_i2
00885 # define VMM_RETADDR m5_l1
00886 #define VM_UMAP (VM_RQ_BASE+11)
00887 # define VMU_SEG m1_i1
00888 # define VMU_OFFSET m1_p1
00889 # define VMU_LENGTH m1_p2
00890 # define VMU_RETADDR m1_p3
00891
00892
00893
00894
00895 #define VM_ADDDMA (VM_RQ_BASE+12)
00896 # define VMAD_REQ m2_i2
00897 # define VMAD_EP m2_i1
00898 # define VMAD_START m2_l1
00899 # define VMAD_SIZE m2_l2
00900
00901
00902
00903
00904 #define VM_DELDMA (VM_RQ_BASE+13)
00905 # define VMDD_REQ m2_i2
00906 # define VMDD_EP m2_i1
00907 # define VMDD_START m2_l1
00908 # define VMDD_SIZE m2_l2
00909
00910
00911
00912
00913 #define VM_GETDMA (VM_RQ_BASE+14)
00914 # define VMGD_REQ m2_i2
00915 # define VMGD_PROCP m2_i1
00916 # define VMGD_BASEP m2_l1
00917 # define VMGD_SIZEP m2_l2
00918
00919 #define VM_MAP_PHYS (VM_RQ_BASE+15)
00920 # define VMMP_EP m1_i1
00921 # define VMMP_PHADDR m1_p2
00922 # define VMMP_LEN m1_i2
00923 # define VMMP_VADDR_REPLY m1_p3
00924
00925 #define VM_UNMAP_PHYS (VM_RQ_BASE+16)
00926 # define VMUP_EP m1_i1
00927 # define VMUP_VADDR m1_p1
00928
00929 #define VM_MUNMAP (VM_RQ_BASE+17)
00930 # define VMUM_ADDR m1_p1
00931 # define VMUM_LEN m1_i1
00932
00933 #define VM_MUNMAP_TEXT (VM_RQ_BASE+19)
00934
00935
00936 # define VMV_ENDPOINT m1_i1
00937 #define VM_VFS_REPLY_OPEN (VM_RQ_BASE+30)
00938 # define VMVRO_FD m1_i2
00939 #define VM_VFS_REPLY_MMAP (VM_RQ_BASE+31)
00940 #define VM_VFS_REPLY_CLOSE (VM_RQ_BASE+32)
00941
00942 #define VM_REMAP (VM_RQ_BASE+33)
00943 # define VMRE_D m1_i1
00944 # define VMRE_S m1_i2
00945 # define VMRE_DA m1_p1
00946 # define VMRE_SA m1_p2
00947 # define VMRE_RETA m1_p3
00948 # define VMRE_SIZE m1_i3
00949
00950 #define VM_SHM_UNMAP (VM_RQ_BASE+34)
00951 # define VMUN_ENDPT m2_i1
00952 # define VMUN_ADDR m2_l1
00953
00954 #define VM_GETPHYS (VM_RQ_BASE+35)
00955 # define VMPHYS_ENDPT m2_i1
00956 # define VMPHYS_ADDR m2_l1
00957 # define VMPHYS_RETA m2_l2
00958
00959 #define VM_GETREF (VM_RQ_BASE+36)
00960 # define VMREFCNT_ENDPT m2_i1
00961 # define VMREFCNT_ADDR m2_l1
00962 # define VMREFCNT_RETC m2_i2
00963
00964 #define VM_RS_SET_PRIV (VM_RQ_BASE+37)
00965 # define VM_RS_NR m2_i1
00966 # define VM_RS_BUF m2_l1
00967
00968 #define VM_QUERY_EXIT (VM_RQ_BASE+38)
00969 # define VM_QUERY_RET_PT m2_i1
00970 # define VM_QUERY_IS_MORE m2_i2
00971
00972 #define VM_NOTIFY_SIG (VM_RQ_BASE+39)
00973 # define VM_NOTIFY_SIG_ENDPOINT m1_i1
00974 # define VM_NOTIFY_SIG_IPC m1_i2
00975
00976 #define VM_INFO (VM_RQ_BASE+40)
00977 # define VMI_WHAT m2_i1
00978 # define VMI_EP m2_i2
00979 # define VMI_COUNT m2_i3
00980 # define VMI_PTR m2_p1
00981 # define VMI_NEXT m2_l1
00982
00983
00984 #define VMIW_STATS 1
00985 #define VMIW_USAGE 2
00986 #define VMIW_REGION 3
00987
00988
00989 #define NR_VM_CALLS 41
00990 #define VM_CALL_MASK_SIZE BITMAP_CHUNKS(NR_VM_CALLS)
00991
00992
00993 #define VM_BASIC_CALLS \
00994 VM_MMAP, VM_MUNMAP, VM_MUNMAP_TEXT, VM_MAP_PHYS, VM_UNMAP_PHYS
00995
00996
00997
00998
00999 #define IPC_BASE 0xD00
01000
01001
01002 #define IPC_SHMGET (IPC_BASE+1)
01003 # define SHMGET_KEY m2_l1
01004 # define SHMGET_SIZE m2_l2
01005 # define SHMGET_FLAG m2_i1
01006 # define SHMGET_RETID m2_i2
01007 #define IPC_SHMAT (IPC_BASE+2)
01008 # define SHMAT_ID m2_i1
01009 # define SHMAT_ADDR m2_l1
01010 # define SHMAT_FLAG m2_i2
01011 # define SHMAT_RETADDR m2_l2
01012 #define IPC_SHMDT (IPC_BASE+3)
01013 # define SHMDT_ADDR m2_l1
01014 #define IPC_SHMCTL (IPC_BASE+4)
01015 # define SHMCTL_ID m2_i1
01016 # define SHMCTL_CMD m2_i2
01017 # define SHMCTL_BUF m2_l1
01018 # define SHMCTL_RET m2_i3
01019
01020
01021 #define IPC_SEMGET (IPC_BASE+5)
01022 # define SEMGET_KEY m2_l1
01023 # define SEMGET_NR m2_i1
01024 # define SEMGET_FLAG m2_i2
01025 # define SEMGET_RETID m2_i3
01026 #define IPC_SEMCTL (IPC_BASE+6)
01027 # define SEMCTL_ID m2_i1
01028 # define SEMCTL_NUM m2_i2
01029 # define SEMCTL_CMD m2_i3
01030 # define SEMCTL_OPT m2_l1
01031 #define IPC_SEMOP (IPC_BASE+7)
01032 # define SEMOP_ID m2_i1
01033 # define SEMOP_OPS m2_l1
01034 # define SEMOP_SIZE m2_i2
01035
01036 #endif