File indexing completed on 2026-05-06 08:54:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 #ifndef __VKI_SOLARIS_H
0041 #define __VKI_SOLARIS_H
0042
0043 #include "config.h"
0044
0045
0046
0047 #if !defined(_XOPEN_SOURCE)
0048
0049 # if (__STDC_VERSION__ - 0 >= 199901L)
0050 # define _XOPEN_SOURCE 600
0051 # else
0052 # define _XOPEN_SOURCE 500
0053 # endif
0054 #elif (_XOPEN_SOURCE - 0 != 500) && (_XOPEN_SOURCE - 0 != 600) && (_XOPEN_SOURCE - 0 != 700)
0055 # error "Compiler or options invalid for including this header file."
0056 #endif
0057
0058 #define __EXTENSIONS__ 1
0059
0060
0061 #define VKI_PAGE_SHIFT 12
0062 #define VKI_PAGE_SIZE (1UL << VKI_PAGE_SHIFT)
0063 #define VKI_PAGEMASK (~VKI_PAGEOFFSET)
0064 #define VKI_PAGEOFFSET (VKI_PAGE_SIZE - 1)
0065 #define VKI_MAX_PAGE_SHIFT VKI_PAGE_SHIFT
0066 #define VKI_MAX_PAGE_SIZE VKI_PAGE_SIZE
0067
0068
0069 #include <sys/types.h>
0070 #define VKI_UINT_MAX UINT_MAX
0071 #define VKI_UINTPTR_MAX UINTPTR_MAX
0072 #define vki_boolean_t boolean_t
0073 #define vki_datalink_id_t datalink_id_t
0074 #define vki_uint_t uint_t
0075 #define vki_uint32_t uint32_t
0076 #define vki_uint64_t uint64_t
0077 #define vki_ulong_t ulong_t
0078 #define vki_caddr_t caddr_t
0079 #define vki_dev_t dev_t
0080 #define vki_off_t off_t
0081 #define vki_id_t id_t
0082 #define vki_key_t key_t
0083 #define vki_mode_t mode_t
0084 #define vki_o_dev_t o_dev_t
0085 #define vki_projid_t projid_t
0086 #define vki_uid_t uid_t
0087 #define vki_gid_t gid_t
0088 #define vki_pid_t pid_t
0089 #define vki_size_t size_t
0090 #define vki_time_t time_t
0091 #define vki_timer_t timer_t
0092 #define vki_uchar_t uchar_t
0093
0094 typedef uint32_t vki_u32;
0095
0096
0097 #include <sys/types32.h>
0098 #define vki_size32_t size32_t
0099
0100
0101 #include <fcntl.h>
0102 #define VKI_SEEK_SET SEEK_SET
0103 #define VKI_AT_SYMLINK_NOFOLLOW AT_SYMLINK_NOFOLLOW
0104
0105
0106 #include <limits.h>
0107 #define VKI_NGROUPS_MAX NGROUPS_MAX
0108 #define VKI_PATH_MAX PATH_MAX
0109
0110 #define VKI_BINPRM_BUF_SIZE VKI_PATH_MAX
0111
0112
0113 #include <ucred.h>
0114 #define vki_ucred_t ucred_t
0115
0116
0117 #include <unistd.h>
0118 #define VKI_R_OK R_OK
0119 #define VKI_W_OK W_OK
0120 #define VKI_X_OK X_OK
0121
0122
0123 #include <bsm/audit.h>
0124 #define VKI_A_GETAMASK A_GETAMASK
0125 #define VKI_A_GETCAR A_GETCAR
0126 #define VKI_A_GETCLASS A_GETCLASS
0127 #define VKI_A_GETCOND A_GETCOND
0128 #define VKI_A_GETCWD A_GETCWD
0129 #define VKI_A_GETKAUDIT A_GETKAUDIT
0130 #define VKI_A_GETKMASK A_GETKMASK
0131 #define VKI_A_GETPINFO A_GETPINFO
0132 #define VKI_A_GETPINFO_ADDR A_GETPINFO_ADDR
0133 #define VKI_A_GETPOLICY A_GETPOLICY
0134 #define VKI_A_GETQCTRL A_GETQCTRL
0135 #if defined(SOLARIS_AUDITON_STAT)
0136 #define VKI_A_GETSTAT A_GETSTAT
0137 #define VKI_A_SETSTAT A_SETSTAT
0138 #endif
0139 #define VKI_A_SETAMASK A_SETAMASK
0140 #define VKI_A_SETCLASS A_SETCLASS
0141 #define VKI_A_SETCOND A_SETCOND
0142 #define VKI_A_SETKAUDIT A_SETKAUDIT
0143 #define VKI_A_SETKMASK A_SETKMASK
0144 #define VKI_A_SETPMASK A_SETPMASK
0145 #define VKI_A_SETPOLICY A_SETPOLICY
0146 #define VKI_A_SETQCTRL A_SETQCTRL
0147 #define VKI_A_SETSMASK A_SETSMASK
0148 #define VKI_A_SETUMASK A_SETUMASK
0149 #define VKI_BSM_AUDIT BSM_AUDIT
0150 #define VKI_BSM_AUDITCTL BSM_AUDITCTL
0151 #define VKI_BSM_AUDITDOOR BSM_AUDITDOOR
0152 #define VKI_BSM_GETAUDIT BSM_GETAUDIT
0153 #define VKI_BSM_GETAUDIT_ADDR BSM_GETAUDIT_ADDR
0154 #define VKI_BSM_GETAUID BSM_GETAUID
0155 #define VKI_BSM_SETAUDIT BSM_SETAUDIT
0156 #define VKI_BSM_SETAUDIT_ADDR BSM_SETAUDIT_ADDR
0157 #define VKI_BSM_SETAUID BSM_SETAUID
0158 #define vki_au_evclass_map_t au_evclass_map_t
0159 #define vki_au_id_t au_id_t
0160 #define vki_au_mask_t au_mask_t
0161 #define vki_au_qctrl au_qctrl
0162 #define vki_auditinfo_t auditinfo_t
0163 #define vki_auditinfo_addr_t auditinfo_addr_t
0164 #define vki_auditpinfo auditpinfo
0165 #define vki_auditpinfo_addr auditpinfo_addr
0166 #if defined(SOLARIS_AUDITON_STAT)
0167 #define vki_au_stat_t au_stat_t
0168 #endif
0169
0170
0171 #include <sys/psw.h>
0172 #define VKI_PSL_USER PSL_USER
0173
0174
0175 #include <ia32/sys/trap.h>
0176 #define VKI_T_BPTFLT T_BPTFLT
0177
0178
0179
0180 #define VKI_CI_BIND_GUARD 4
0181 #define VKI_CI_BIND_CLEAR 5
0182 #define VKI_THR_FLG_RTLD 0x01
0183
0184 typedef struct {
0185 int ci_tag;
0186 union {
0187 int (*ci_func)(int);
0188 long ci_val;
0189 char *ci_ptr;
0190 } vki_ci_un;
0191 } vki_Lc_interface;
0192
0193
0194
0195 #if defined(SOLARIS_NSCD_DOOR_SYSTEM_VOLATILE)
0196 #define VKI_NAME_SERVICE_DOOR "/system/volatile/name_service_door"
0197 #else
0198 #define VKI_NAME_SERVICE_DOOR "/var/run/name_service_door"
0199 #endif
0200
0201
0202 #include <nfs/nfs.h>
0203 #include <nfs/nfssys.h>
0204 #define VKI_NFS_REVAUTH NFS_REVAUTH
0205 #define vki_nfs_revauth_args nfs_revauth_args
0206
0207
0208 #include <net/if.h>
0209 #define vki_ifconf ifconf
0210 #define vki_ifreq ifreq
0211 #define vki_lifconf lifconf
0212 #define vki_lifnum lifnum
0213 #define vki_lifreq lifreq
0214
0215
0216 #include <netinet/in.h>
0217 #define VKI_IPPROTO_TCP IPPROTO_TCP
0218 #define vki_in_addr in_addr
0219 #define vki_sockaddr_in sockaddr_in
0220 #define vki_sockaddr_in6 sockaddr_in6
0221
0222 #include <netinet/tcp.h>
0223 #define VKI_TCP_NODELAY TCP_NODELAY
0224
0225
0226
0227
0228
0229 #if !defined(__cplusplus)
0230 #include <nss_dbdefs.h>
0231 #define VKI_NSCD_CALLCAT_APP NSCD_CALLCAT_APP
0232 #define VKI_NSCDV2CATMASK NSCDV2CATMASK
0233 #define vki_nss_dbd_t nss_dbd_t
0234 #define vki_nss_pheader_t nss_pheader_t
0235 #endif
0236
0237
0238
0239 #include "vki-solaris-repcache.h"
0240
0241 #include <sys/acl.h>
0242 #define vki_aclent_t aclent_t
0243 #define vki_ace_t ace_t
0244 #define VKI_GETACL GETACL
0245 #define VKI_SETACL SETACL
0246 #define VKI_GETACLCNT GETACLCNT
0247 #define VKI_ACE_GETACL ACE_GETACL
0248 #define VKI_ACE_SETACL ACE_SETACL
0249 #define VKI_ACE_GETACLCNT ACE_GETACLCNT
0250
0251
0252 #include <sys/auxv.h>
0253 #define vki_auxv_t auxv_t
0254 #define VKI_AT_NULL AT_NULL
0255 #define VKI_AT_PHDR AT_PHDR
0256 #define VKI_AT_PAGESZ AT_PAGESZ
0257 #define VKI_AT_BASE AT_BASE
0258 #define VKI_AT_FLAGS AT_FLAGS
0259 #define VKI_AT_ENTRY AT_ENTRY
0260 #define VKI_AT_SUN_PLATFORM AT_SUN_PLATFORM
0261 #define VKI_AT_SUN_HWCAP AT_SUN_HWCAP
0262 #define VKI_AT_SUN_EXECNAME AT_SUN_EXECNAME
0263 #define VKI_AT_SUN_AUXFLAGS AT_SUN_AUXFLAGS
0264 #if defined(SOLARIS_RESERVE_SYSSTAT_ADDR)
0265 #define VKI_AT_SUN_SYSSTAT_ADDR AT_SUN_SYSSTAT_ADDR
0266 #endif
0267 #if defined(SOLARIS_RESERVE_SYSSTAT_ZONE_ADDR)
0268 #define VKI_AT_SUN_SYSSTAT_ZONE_ADDR AT_SUN_SYSSTAT_ZONE_ADDR
0269 #endif
0270
0271 #define VKI_AF_SUN_HWCAPVERIFY AF_SUN_HWCAPVERIFY
0272
0273
0274 #include <sys/auxv_386.h>
0275 #define VKI_AV_386_FPU AV_386_FPU
0276 #define VKI_AV_386_TSC AV_386_TSC
0277 #define VKI_AV_386_CX8 AV_386_CX8
0278 #define VKI_AV_386_SEP AV_386_SEP
0279 #define VKI_AV_386_AMD_SYSC AV_386_AMD_SYSC
0280 #define VKI_AV_386_CMOV AV_386_CMOV
0281 #define VKI_AV_386_MMX AV_386_MMX
0282 #define VKI_AV_386_FXSR AV_386_FXSR
0283 #define VKI_AV_386_SSE AV_386_SSE
0284 #define VKI_AV_386_SSE2 AV_386_SSE2
0285 #define VKI_AV_386_SSE3 AV_386_SSE3
0286 #define VKI_AV_386_CX16 AV_386_CX16
0287 #define VKI_AV_386_AHF AV_386_AHF
0288 #define VKI_AV_386_TSCP AV_386_TSCP
0289 #define VKI_AV_386_POPCNT AV_386_POPCNT
0290 #define VKI_AV_386_AMD_LZCNT AV_386_AMD_LZCNT
0291 #define VKI_AV_386_SSSE3 AV_386_SSSE3
0292 #define VKI_AV_386_SSE4_1 AV_386_SSE4_1
0293 #define VKI_AV_386_SSE4_2 AV_386_SSE4_2
0294 #define VKI_AV_386_AES AV_386_AES
0295 #define VKI_AV_386_PCLMULQDQ AV_386_PCLMULQDQ
0296 #define VKI_AV_386_XSAVE AV_386_XSAVE
0297
0298
0299 #include <sys/corectl.h>
0300 #define VKI_CC_CONTENT_ANON CC_CONTENT_ANON
0301 #define VKI_CC_CONTENT_DATA CC_CONTENT_DATA
0302 #define VKI_CC_CONTENT_DISM CC_CONTENT_DISM
0303 #define VKI_CC_CONTENT_HEAP CC_CONTENT_HEAP
0304 #define VKI_CC_CONTENT_ISM CC_CONTENT_ISM
0305 #define VKI_CC_CONTENT_RODATA CC_CONTENT_RODATA
0306 #define VKI_CC_CONTENT_SHANON CC_CONTENT_SHANON
0307 #define VKI_CC_CONTENT_SHM CC_CONTENT_SHM
0308 #define VKI_CC_CONTENT_STACK CC_CONTENT_STACK
0309 #define VKI_CC_CONTENT_TEXT CC_CONTENT_TEXT
0310 #define vki_core_content_t core_content_t
0311
0312
0313
0314 #define VKI__PATH_KCFD_DOOR "/system/volatile/kcfd_door"
0315 typedef enum vki_ELFsign_status_e {
0316 VKI_ELFSIGN_UNKNOWN,
0317 VKI_ELFSIGN_SUCCESS,
0318 VKI_ELFSIGN_FAILED,
0319 VKI_ELFSIGN_NOTSIGNED,
0320 VKI_ELFSIGN_INVALID_CERTPATH,
0321 VKI_ELFSIGN_INVALID_ELFOBJ,
0322 VKI_ELFSIGN_UNAVAILABLE
0323 } vki_ELFsign_status_t;
0324 typedef struct vki_kcf_door_arg_s {
0325 short da_version;
0326 vki_boolean_t da_iskernel;
0327 union {
0328 char filename[MAXPATHLEN];
0329
0330 struct vki_kcf_door_result_s {
0331 vki_ELFsign_status_t status;
0332 vki_uint32_t siglen;
0333 vki_uchar_t signature[1];
0334 } result;
0335 } vki_da_u;
0336 } vki_kcf_door_arg_t;
0337
0338
0339 #include <sys/crypto/ioctl.h>
0340 #define VKI_CRYPTO_SUCCESS CRYPTO_SUCCESS
0341 #define VKI_CRYPTO_GET_PROVIDER_LIST CRYPTO_GET_PROVIDER_LIST
0342 #define vki_crypto_provider_id_t crypto_provider_id_t
0343 #define vki_crypto_provider_entry_t crypto_provider_entry_t
0344 #define vki_crypto_get_provider_list_t crypto_get_provider_list_t
0345
0346
0347 #include <sys/dditypes.h>
0348 #include <sys/devinfo_impl.h>
0349 #define VKI_DINFOUSRLD DINFOUSRLD
0350 #define VKI_DINFOIDENT DINFOIDENT
0351
0352
0353 #include <sys/dirent.h>
0354 #define VKI_MAXGETDENTS_SIZE MAXGETDENTS_SIZE
0355 #define vki_dirent dirent
0356 #define vki_dirent64 dirent64
0357
0358
0359 #include <sys/door.h>
0360 #define vki_door_desc_t door_desc_t
0361 #define vki_door_info_t door_info_t
0362 #define vki_door_arg_t door_arg_t
0363 #define vki_door_results door_results
0364 #define vki_door_return_desc_t door_return_desc_t
0365
0366 #define VKI_DOOR_CREATE DOOR_CREATE
0367 #define VKI_DOOR_REVOKE DOOR_REVOKE
0368 #define VKI_DOOR_INFO DOOR_INFO
0369 #define VKI_DOOR_CALL DOOR_CALL
0370 #define VKI_DOOR_BIND DOOR_BIND
0371 #define VKI_DOOR_UNBIND DOOR_UNBIND
0372 #define VKI_DOOR_UNREFSYS DOOR_UNREFSYS
0373 #define VKI_DOOR_UCRED DOOR_UCRED
0374 #define VKI_DOOR_RETURN DOOR_RETURN
0375 #define VKI_DOOR_GETPARAM DOOR_GETPARAM
0376 #define VKI_DOOR_SETPARAM DOOR_SETPARAM
0377
0378
0379 #include <sys/dtrace.h>
0380 #define VKI_DTRACEHIOC_REMOVE DTRACEHIOC_REMOVE
0381 #define VKI_DTRACEHIOC_ADDDOF DTRACEHIOC_ADDDOF
0382 #define vki_dof_helper_t dof_helper_t
0383
0384
0385 #include <sys/elf.h>
0386 #define VKI_EI_CLASS EI_CLASS
0387 #define VKI_EI_DATA EI_DATA
0388 #define VKI_EI_MAG0 EI_MAG0
0389 #define VKI_EI_MAG1 EI_MAG1
0390 #define VKI_EI_MAG2 EI_MAG2
0391 #define VKI_EI_MAG3 EI_MAG3
0392 #define VKI_EI_VERSION EI_VERSION
0393 #define VKI_ELFMAG ELFMAG
0394 #define VKI_ELFMAG ELFMAG
0395 #define VKI_ELFMAG0 ELFMAG0
0396 #define VKI_ELFMAG1 ELFMAG1
0397 #define VKI_ELFMAG2 ELFMAG2
0398 #define VKI_ELFMAG3 ELFMAG3
0399 #define VKI_ET_CORE ET_CORE
0400 #define VKI_ET_DYN ET_DYN
0401 #define VKI_ET_EXEC ET_EXEC
0402 #define VKI_EV_CURRENT EV_CURRENT
0403 #define VKI_NT_AUXV NT_AUXV
0404 #define VKI_NT_CONTENT NT_CONTENT
0405 #define VKI_NT_LWPSINFO NT_LWPSINFO
0406 #define VKI_NT_LWPSTATUS NT_LWPSTATUS
0407 #define VKI_NT_PLATFORM NT_PLATFORM
0408 #define VKI_NT_PRCRED NT_PRCRED
0409 #define VKI_NT_PRFPREG NT_PRFPREG
0410 #define VKI_NT_PRPRIV NT_PRPRIV
0411 #define VKI_NT_PRPRIVINFO NT_PRPRIVINFO
0412 #define VKI_NT_PRPSINFO NT_PRPSINFO
0413 #define VKI_NT_PRSTATUS NT_PRSTATUS
0414 #define VKI_NT_PRXREG NT_PRXREG
0415 #define VKI_NT_PSINFO NT_PSINFO
0416 #define VKI_NT_PSTATUS NT_PSTATUS
0417 #define VKI_NT_UTSNAME NT_UTSNAME
0418 #define VKI_NT_ZONENAME NT_ZONENAME
0419 #define VKI_PF_R PF_R
0420 #define VKI_PF_W PF_W
0421 #define VKI_PF_X PF_X
0422 #define VKI_PN_XNUM PN_XNUM
0423 #define VKI_PT_LOAD PT_LOAD
0424 #define VKI_PT_SUNWBSS PT_SUNWBSS
0425 #define VKI_SELFMAG SELFMAG
0426
0427 #if VG_WORDSIZE == 8
0428 #define VKI_ESZ(x) Elf64_##x
0429 #elif VG_WORDSIZE == 4
0430 #define VKI_ESZ(x) Elf32_##x
0431 #else
0432 #error VG_WORDSIZE needs to ==4 or ==8
0433 #endif
0434
0435
0436 #include <sys/errno.h>
0437 #define VKI_EPERM EPERM
0438 #define VKI_ENOENT ENOENT
0439 #define VKI_ESRCH ESRCH
0440 #define VKI_EINTR EINTR
0441 #define VKI_EIO EIO
0442 #define VKI_ENXIO ENXIO
0443 #define VKI_E2BIG E2BIG
0444 #define VKI_EBADF EBADF
0445 #define VKI_ECHILD ECHILD
0446 #define VKI_ENOEXEC ENOEXEC
0447 #define VKI_EAGAIN EAGAIN
0448 #define VKI_ENOMEM ENOMEM
0449 #define VKI_EACCES EACCES
0450 #define VKI_EFAULT EFAULT
0451 #define VKI_ENOTBLK ENOTBLK
0452 #define VKI_EBUSY EBUSY
0453 #define VKI_EEXIST EEXIST
0454 #define VKI_EXDEV EXDEV
0455 #define VKI_ENODEV ENODEV
0456 #define VKI_ENOTDIR ENOTDIR
0457 #define VKI_EISDIR EISDIR
0458 #define VKI_EINVAL EINVAL
0459 #define VKI_ENFILE ENFILE
0460 #define VKI_EMFILE EMFILE
0461 #define VKI_ENOTTY ENOTTY
0462 #define VKI_ETXTBSY ETXTBSY
0463 #define VKI_EFBIG EFBIG
0464 #define VKI_ENOSPC ENOSPC
0465 #define VKI_ESPIPE ESPIPE
0466 #define VKI_EROFS EROFS
0467 #define VKI_EMLINK EMLINK
0468 #define VKI_EPIPE EPIPE
0469 #define VKI_EDOM EDOM
0470 #define VKI_ERANGE ERANGE
0471 #define VKI_ENOTSUP ENOTSUP
0472 #define VKI_ENODATA ENODATA
0473 #define VKI_EOVERFLOW EOVERFLOW
0474 #define VKI_ENOSYS ENOSYS
0475 #define VKI_ERESTART ERESTART
0476 #define VKI_EADDRINUSE EADDRINUSE
0477
0478
0479 #if defined(SOLARIS_EXECVE_SYSCALL_TAKES_FLAGS)
0480 #include <sys/execx.h>
0481 #define VKI_EXEC_DESCRIPTOR EXEC_DESCRIPTOR
0482 #endif
0483
0484
0485 #include <sys/fasttrap.h>
0486 #define VKI_PT_SUNWDTRACE_SIZE PT_SUNWDTRACE_SIZE
0487
0488
0489 #include <sys/fcntl.h>
0490 #define VKI_O_RDONLY O_RDONLY
0491 #define VKI_O_WRONLY O_WRONLY
0492 #define VKI_O_RDWR O_RDWR
0493 #define VKI_O_APPEND O_APPEND
0494 #define VKI_O_NONBLOCK O_NONBLOCK
0495
0496 #define VKI_O_CREAT O_CREAT
0497 #define VKI_O_TRUNC O_TRUNC
0498 #define VKI_O_EXCL O_EXCL
0499 #define VKI_O_LARGEFILE O_LARGEFILE
0500
0501 #define VKI_F_DUPFD F_DUPFD
0502 #define VKI_F_DUPFD_CLOEXEC F_DUPFD_CLOEXEC
0503 #define VKI_F_GETFD F_GETFD
0504 #define VKI_F_SETFD F_SETFD
0505 #define VKI_F_GETFL F_GETFL
0506 #define VKI_F_GETXFL F_GETXFL
0507 #define VKI_F_SETFL F_SETFL
0508
0509
0510
0511 #if 0
0512 #define VKI_F_O_GETLK F_O_GETLK
0513 #endif
0514
0515 #define VKI_F_DUP2FD F_DUP2FD
0516
0517
0518
0519
0520
0521
0522 #if 0
0523 #define VKI_F_ISSTREAM F_ISSTREAM
0524 #define VKI_F_PRIV F_PRIV
0525 #define VKI_F_NPRIV F_NPRIV
0526 #define VKI_F_QUATACTL F_QUOTACTL
0527 #define VKI_F_BLOCKS F_BLOCKS
0528 #define VKI_F_BLKSIZE F_BLKSIZE
0529 #define VKI_F_GETOWN F_GETOWN
0530 #define VKI_F_SETOWN F_SETOWN
0531 #define VKI_F_REVOKE F_REVOKE
0532 #define VKI_F_HASREMOTELOCKS F_HASREMOTELOCKS
0533 #endif
0534
0535 #define VKI_F_SETLK F_SETLK
0536 #define VKI_F_SETLKW F_SETLKW
0537 #define VKI_F_ALLOCSP F_ALLOCSP
0538 #define VKI_F_FREESP F_FREESP
0539 #define VKI_F_GETLK F_GETLK
0540 #define VKI_F_SETLK_NBMAND F_SETLK_NBMAND
0541 #if defined(VGP_x86_solaris)
0542 #define VKI_F_SETLK64 F_SETLK64
0543 #define VKI_F_SETLKW64 F_SETLKW64
0544 #define VKI_F_ALLOCSP64 F_ALLOCSP64
0545 #define VKI_F_FREESP64 F_FREESP64
0546 #define VKI_F_GETLK64 F_GETLK64
0547 #define VKI_F_SETLK64_NBMAND F_SETLK64_NBMAND
0548 #endif
0549
0550 #define VKI_F_SHARE F_SHARE
0551 #define VKI_F_UNSHARE F_UNSHARE
0552 #define VKI_F_SHARE_NBMAND F_SHARE_NBMAND
0553
0554 #define VKI_F_BADFD F_BADFD
0555
0556 #define vki_flock flock
0557 #if defined(VGP_x86_solaris)
0558 #define vki_flock64 flock64
0559 #endif
0560
0561 #define VKI_FD_CLOEXEC FD_CLOEXEC
0562
0563 #define vki_fshare fshare
0564
0565 #define VKI_AT_FDCWD AT_FDCWD
0566
0567
0568 #include <sys/filio.h>
0569 #define VKI_FIOSETOWN FIOSETOWN
0570 #define VKI_FIOGETOWN FIOGETOWN
0571
0572
0573 #include <sys/fs/namenode.h>
0574 #define vki_namefd namefd
0575
0576
0577 #include <sys/fstyp.h>
0578 #define VKI_FSTYPSZ FSTYPSZ
0579 #define VKI_GETFSIND GETFSIND
0580 #define VKI_GETFSTYP GETFSTYP
0581 #define VKI_GETNFSTYP GETNFSTYP
0582
0583
0584 #include <sys/ioccom.h>
0585 #define _VKI_IOC_DIR(x) ((x) & (IOC_VOID | IOC_OUT | IOC_IN))
0586 #define _VKI_IOC_SIZE(x) (((x) >> 16) & IOCPARM_MASK)
0587 #define _VKI_IOC_NONE 0
0588 #define _VKI_IOC_READ IOC_OUT
0589 #define _VKI_IOC_WRITE IOC_IN
0590
0591
0592 #include <sys/ipc.h>
0593 #include <sys/ipc_impl.h>
0594 #define VKI_IPC_RMID IPC_RMID
0595 #define VKI_IPC_SET IPC_SET
0596 #define VKI_IPC_SET64 IPC_SET64
0597 #define VKI_IPC_STAT IPC_STAT
0598 #define VKI_IPC_STAT64 IPC_STAT64
0599 #if defined(SOLARIS_SHM_NEW)
0600 #define VKI_IPC_XSTAT64 IPC_XSTAT64
0601 #endif
0602
0603 #define vki_semid64_ds semid_ds64
0604
0605
0606 #include <sys/lgrp_user.h>
0607 #if defined(HAVE_SYS_LGRP_USER_IMPL_H)
0608
0609 #include <sys/lgrp_user_impl.h>
0610 #endif
0611 #define VKI_LGRP_SYS_MEMINFO LGRP_SYS_MEMINFO
0612 #define VKI_LGRP_SYS_GENERATION LGRP_SYS_GENERATION
0613 #define VKI_LGRP_SYS_VERSION LGRP_SYS_VERSION
0614 #define VKI_LGRP_SYS_SNAPSHOT LGRP_SYS_SNAPSHOT
0615 #define VKI_LGRP_SYS_AFFINITY_GET LGRP_SYS_AFFINITY_GET
0616 #define VKI_LGRP_SYS_AFFINITY_SET LGRP_SYS_AFFINITY_SET
0617 #define VKI_LGRP_SYS_LATENCY LGRP_SYS_LATENCY
0618 #define VKI_LGRP_SYS_HOME LGRP_SYS_HOME
0619 #define VKI_LGRP_SYS_AFF_INHERIT_GET LGRP_SYS_AFF_INHERIT_GET
0620 #define VKI_LGRP_SYS_AFF_INHERIT_SET LGRP_SYS_AFF_INHERIT_SET
0621 #define VKI_LGRP_SYS_DEVICE_LGRPS LGRP_SYS_DEVICE_LGRPS
0622 #define VKI_LGRP_SYS_MAXSOCKETS_GET LGRP_SYS_MAXSOCKETS_GET
0623 #define vki_lgrp_view_t lgrp_view_t
0624
0625
0626 #include <sys/loadavg.h>
0627 #define VKI_LOADAVG_NSTATS LOADAVG_NSTATS
0628
0629
0630 #include <sys/lwp.h>
0631 #define VKI_LWP_DAEMON LWP_DAEMON
0632 #define VKI_LWP_FSBASE _LWP_FSBASE
0633 #define VKI_LWP_GSBASE _LWP_GSBASE
0634 #define VKI_LWP_SETPRIVATE _LWP_SETPRIVATE
0635 #define VKI_LWP_GETPRIVATE _LWP_GETPRIVATE
0636
0637
0638 #include <sys/mman.h>
0639 #define VKI_PROT_READ PROT_READ
0640 #define VKI_PROT_WRITE PROT_WRITE
0641 #define VKI_PROT_EXEC PROT_EXEC
0642 #define VKI_PROT_NONE PROT_NONE
0643
0644 #define VKI_MAP_SHARED MAP_SHARED
0645 #define VKI_MAP_PRIVATE MAP_PRIVATE
0646 #define VKI_MAP_FIXED MAP_FIXED
0647 #define VKI_MAP_ANONYMOUS MAP_ANONYMOUS
0648 #define VKI_MAP_ALIGN MAP_ALIGN
0649 #define VKI_MAP_TEXT MAP_TEXT
0650 #define VKI_MAP_INITDATA MAP_INITDATA
0651
0652 #define VKI_MMOBJ_ALL_FLAGS MMOBJ_ALL_FLAGS
0653 #define VKI_MMOBJ_INTERPRET MMOBJ_INTERPRET
0654 #define VKI_MMOBJ_PADDING MMOBJ_PADDING
0655 #define VKI_MR_PADDING MR_PADDING
0656 #define VKI_MR_HDR_ELF MR_HDR_ELF
0657 #define VKI_MR_GET_TYPE(val) MR_GET_TYPE(val)
0658 #define vki_mmapobj_result_t mmapobj_result_t
0659
0660 #define vki_memcntl_mha memcntl_mha
0661 #define VKI_MC_LOCKAS MC_LOCKAS
0662 #define VKI_MC_UNLOCKAS MC_UNLOCKAS
0663 #define VKI_MC_HAT_ADVISE MC_HAT_ADVISE
0664
0665 #define vki_meminfo_t meminfo_t
0666
0667 #if defined(HAVE_MREMAP)
0668 #define VKI_MREMAP_FIXED MREMAP_FIXED
0669 #define VKI_MREMAP_MAYMOVE MREMAP_MAYMOVE
0670 #endif
0671
0672
0673 #include <sys/mntio.h>
0674 #define VKI_MNTIOC_GETEXTMNTENT MNTIOC_GETEXTMNTENT
0675 #define VKI_MNTIOC_GETMNTANY MNTIOC_GETMNTANY
0676
0677
0678 #include <sys/mnttab.h>
0679 #define vki_extmnttab extmnttab
0680 #define vki_mntentbuf mntentbuf
0681 #define vki_mnttab mnttab
0682
0683
0684 #include <sys/modctl.h>
0685 #define VKI_MODLOAD MODLOAD
0686 #define VKI_MODUNLOAD MODUNLOAD
0687 #define VKI_MODINFO MODINFO
0688
0689 #if defined(SOLARIS_MODCTL_MODNVL)
0690 #define VKI_MODNVL_DEVLINKSYNC MODNVL_DEVLINKSYNC
0691 #define VKI_MODDEVINFO_CACHE_TS MODDEVINFO_CACHE_TS
0692 #if !defined(HAVE_SYS_SYSNVL_H)
0693 #define VKI_MODCTL_NVL_OP_GET MODCTL_NVL_OP_GET
0694 #define VKI_MODCTL_NVL_OP_UPDATE MODCTL_NVL_OP_UPDATE
0695 #endif
0696 #endif
0697
0698 #define vki_modid_t int
0699 #define vki_modinfo modinfo
0700
0701
0702 #include <sys/mount.h>
0703 #define VKI_MS_DATA MS_DATA
0704 #define VKI_MS_OPTIONSTR MS_OPTIONSTR
0705
0706
0707 #include <sys/poll.h>
0708 #define vki_pollfd pollfd
0709 #define vki_pollfd_t pollfd_t
0710 #define vki_nfds_t nfds_t
0711
0712
0713 #include <sys/pool_impl.h>
0714 #define VKI_POOL_STATUSQ POOL_STATUSQ
0715 #define vki_pool_status_t pool_status_t
0716
0717
0718 #include <sys/port.h>
0719 #include <sys/port_impl.h>
0720 #define VKI_PORT_SOURCE_FD PORT_SOURCE_FD
0721 #define VKI_PORT_SOURCE_FILE PORT_SOURCE_FILE
0722
0723 #define vki_port_event_t port_event_t
0724 #define vki_port_notify_t port_notify_t
0725 #define vki_file_obj file_obj
0726
0727 #define VKI_PORT_CREATE PORT_CREATE
0728 #define VKI_PORT_ASSOCIATE PORT_ASSOCIATE
0729 #define VKI_PORT_DISSOCIATE PORT_DISSOCIATE
0730 #define VKI_PORT_SEND PORT_SEND
0731 #define VKI_PORT_SENDN PORT_SENDN
0732 #define VKI_PORT_GET PORT_GET
0733 #define VKI_PORT_GETN PORT_GETN
0734 #define VKI_PORT_ALERT PORT_ALERT
0735 #define VKI_PORT_DISPATCH PORT_DISPATCH
0736
0737 #define VKI_PORT_SYS_NOPORT PORT_SYS_NOPORT
0738 #define VKI_PORT_CODE_MASK PORT_CODE_MASK
0739
0740
0741 #include <sys/priocntl.h>
0742 #include <sys/rtpriocntl.h>
0743 #include <sys/tspriocntl.h>
0744 #include <sys/iapriocntl.h>
0745 #include <sys/fsspriocntl.h>
0746 #include <sys/fxpriocntl.h>
0747 #define VKI_PC_GETCID PC_GETCID
0748 #define VKI_PC_GETCLINFO PC_GETCLINFO
0749 #define VKI_PC_SETPARMS PC_SETPARMS
0750 #define VKI_PC_GETPARMS PC_GETPARMS
0751 #define VKI_PC_ADMIN PC_ADMIN
0752 #define VKI_PC_GETPRIRANGE PC_GETPRIRANGE
0753 #define VKI_PC_DONICE PC_DONICE
0754 #define VKI_PC_SETXPARMS PC_SETXPARMS
0755 #define VKI_PC_GETXPARMS PC_GETXPARMS
0756 #define VKI_PC_SETDFLCL PC_SETDFLCL
0757 #define VKI_PC_GETDFLCL PC_GETDFLCL
0758 #define VKI_PC_DOPRIO PC_DOPRIO
0759
0760 #define VKI_PC_CLNMSZ PC_CLNMSZ
0761
0762 #define VKI_PC_GETNICE PC_GETNICE
0763 #define VKI_PC_SETNICE PC_SETNICE
0764
0765 #define VKI_PC_GETPRIO PC_GETPRIO
0766 #define VKI_PC_SETPRIO PC_SETPRIO
0767
0768 #define vki_pcinfo_t pcinfo_t
0769 #define vki_rtinfo_t rtinfo_t
0770 #define vki_tsinfo_t tsinfo_t
0771 #define vki_iainfo_t iainfo_t
0772 #define vki_fssinfo_t fssinfo_t
0773 #define vki_fxinfo_t fxinfo_t
0774
0775 #define vki_pcparms_t pcparms_t
0776 #define vki_pcnice_t pcnice_t
0777 #define vki_pcprio_t pcprio_t
0778 #define vki_pc_vaparm_t pc_vaparm_t
0779 #define vki_pc_vaparms_t pc_vaparms_t
0780 #define vki_pcpri_t pcpri_t
0781
0782 #define VKI_PC_KY_CLNAME PC_KY_CLNAME
0783 #define VKI_RT_KY_PRI RT_KY_PRI
0784 #define VKI_RT_KY_TQSECS RT_KY_TQSECS
0785 #define VKI_RT_KY_TQNSECS RT_KY_TQNSECS
0786 #define VKI_RT_KY_TQSIG RT_KY_TQSIG
0787 #define VKI_TS_KY_UPRILIM TS_KY_UPRILIM
0788 #define VKI_TS_KY_UPRI TS_KY_UPRI
0789 #define VKI_IA_KY_UPRILIM IA_KY_UPRILIM
0790 #define VKI_IA_KY_UPRI IA_KY_UPRI
0791 #define VKI_IA_KY_MODE IA_KY_MODE
0792 #define VKI_FSS_KY_UPRILIM FSS_KY_UPRILIM
0793 #define VKI_FSS_KY_UPRI FSS_KY_UPRI
0794 #define VKI_FX_KY_UPRILIM FX_KY_UPRILIM
0795 #define VKI_FX_KY_UPRI FX_KY_UPRI
0796 #define VKI_FX_KY_TQSECS FX_KY_TQSECS
0797 #define VKI_FX_KY_TQNSECS FX_KY_TQNSECS
0798
0799
0800 #include <sys/priv.h>
0801 #define vki_priv_impl_info_t priv_impl_info_t
0802
0803
0804 #include <sys/proc.h>
0805 #define VKI_SRUN SRUN
0806 #define VKI_SSLEEP SSLEEP
0807 #define VKI_SZOMB SZOMB
0808
0809
0810 #include <sys/processor.h>
0811 #define vki_processorid_t processorid_t
0812
0813
0814
0815 #define _STRUCTURED_PROC 1
0816 #include <sys/procfs.h>
0817 #define VKI_MA_READ MA_READ
0818 #define VKI_MA_WRITE MA_WRITE
0819 #define VKI_MA_EXEC MA_EXEC
0820 #define VKI_PRNODEV PRNODEV
0821 #define VKI_PR_PCINVAL PR_PCINVAL
0822 #define vki_lwpsinfo_t lwpsinfo_t
0823 #define vki_lwpstatus_t lwpstatus_t
0824 #define vki_prcred_t prcred_t
0825 #define vki_prmap_t prmap_t
0826 #define vki_prpriv_t prpriv_t
0827 #define vki_prxmap_t prxmap_t
0828 #define vki_pstatus_t pstatus_t
0829 #define vki_psinfo_t psinfo_t
0830
0831
0832 #include <sys/procfs_isa.h>
0833 #if defined(SOLARIS_PRXREGSET_T)
0834 #define vki_prxregset_t prxregset_t
0835 #endif
0836
0837
0838 #include <sys/procset.h>
0839 #define vki_idtype_t idtype_t
0840 #define VKI_P_PID P_PID
0841 #define VKI_P_PGID P_PGID
0842 #define VKI_P_ALL P_ALL
0843 #define VKI_POP_AND POP_AND
0844 #define vki_procset_t procset_t
0845
0846
0847 #include <sys/pset.h>
0848 #define VKI_PSET_CREATE PSET_CREATE
0849 #define VKI_PSET_DESTROY PSET_DESTROY
0850 #define VKI_PSET_ASSIGN PSET_ASSIGN
0851 #define VKI_PSET_INFO PSET_INFO
0852 #define VKI_PSET_BIND PSET_BIND
0853 #define VKI_PSET_GETLOADAVG PSET_GETLOADAVG
0854 #define VKI_PSET_LIST PSET_LIST
0855 #define VKI_PSET_SETATTR PSET_SETATTR
0856 #define VKI_PSET_GETATTR PSET_GETATTR
0857 #define VKI_PSET_ASSIGN_FORCED PSET_ASSIGN_FORCED
0858 #define VKI_PSET_BIND_LWP PSET_BIND_LWP
0859 #if defined(SOLARIS_PSET_GET_NAME)
0860 #define VKI_PSET_GET_NAME PSET_GET_NAME
0861 #endif
0862 #define vki_psetid_t psetid_t
0863
0864
0865 #include <sys/regset.h>
0866 #define vki_prgregset_t prgregset_t
0867
0868
0869 #include <sys/resource.h>
0870 #define VKI_RLIMIT_DATA RLIMIT_DATA
0871 #define VKI_RLIMIT_STACK RLIMIT_STACK
0872 #define VKI_RLIMIT_CORE RLIMIT_CORE
0873 #define VKI_RLIMIT_NOFILE RLIMIT_NOFILE
0874 #define VKI__RUSAGESYS_GETRUSAGE _RUSAGESYS_GETRUSAGE
0875 #define VKI__RUSAGESYS_GETRUSAGE_CHLD _RUSAGESYS_GETRUSAGE_CHLD
0876 #define VKI__RUSAGESYS_GETRUSAGE_LWP _RUSAGESYS_GETRUSAGE_LWP
0877 #define VKI__RUSAGESYS_GETVMUSAGE _RUSAGESYS_GETVMUSAGE
0878 #define vki_rlimit rlimit
0879 #define vki_rlimit64 rlimit64
0880 #define vki_rusage rusage
0881
0882
0883 #include <sys/schedctl.h>
0884 #define vki_sc_shared sc_shared
0885
0886
0887 #include <sys/segments.h>
0888 #define VKI_GDT_LWPGS GDT_LWPGS
0889 #if defined(VGP_amd64_solaris)
0890
0891
0892
0893
0894 #define VKI_UCS_SEL UCS_SEL
0895 #define VKI_UDS_SEL UDS_SEL
0896 #endif
0897 #define VKI_LWPGS_SEL LWPGS_SEL
0898
0899
0900 #include <sys/select.h>
0901 #define vki_fd_set fd_set
0902
0903
0904 #include <sys/priv.h>
0905
0906 #define _KMEMUSER
0907 #include <sys/priv_impl.h>
0908 #undef _KMEMUSER
0909 #define vki_priv_set_t priv_set_t
0910 #define vki_priv_ptype_t priv_ptype_t
0911 #define vki_priv_op_t priv_op_t
0912
0913 #define VKI_PRIVSYS_SETPPRIV PRIVSYS_SETPPRIV
0914 #define VKI_PRIVSYS_GETPPRIV PRIVSYS_GETPPRIV
0915 #define VKI_PRIVSYS_GETIMPLINFO PRIVSYS_GETIMPLINFO
0916 #define VKI_PRIVSYS_SETPFLAGS PRIVSYS_SETPFLAGS
0917 #define VKI_PRIVSYS_GETPFLAGS PRIVSYS_GETPFLAGS
0918 #define VKI_PRIVSYS_ISSETUGID PRIVSYS_ISSETUGID
0919 #define VKI_PRIVSYS_PFEXEC_REG PRIVSYS_PFEXEC_REG
0920 #define VKI_PRIVSYS_PFEXEC_UNREG PRIVSYS_PFEXEC_UNREG
0921
0922 #define vki_priv_impl_info_t priv_impl_info_t
0923
0924
0925 #include <sys/sem.h>
0926 #include <sys/sem_impl.h>
0927 #define VKI_GETALL GETALL
0928 #define VKI_GETPID GETPID
0929 #define VKI_GETNCNT GETNCNT
0930 #define VKI_GETZCNT GETZCNT
0931 #define VKI_GETVAL GETVAL
0932 #define VKI_SEMCTL SEMCTL
0933 #define VKI_SEMGET SEMGET
0934 #define VKI_SEMIDS SEMIDS
0935 #define VKI_SEMOP SEMOP
0936 #define VKI_SEMTIMEDOP SEMTIMEDOP
0937 #define VKI_SETALL SETALL
0938 #define VKI_SETVAL SETVAL
0939
0940 #define vki_semid_ds semid_ds
0941 #define vki_sembuf sembuf
0942
0943
0944
0945 union vki_semun {
0946 int val;
0947 struct semid_ds *buf;
0948 ushort_t *array;
0949 };
0950
0951
0952 #include <sys/sendfile.h>
0953 #define VKI_SENDFILEV SENDFILEV
0954 #define VKI_SENDFILEV64 SENDFILEV64
0955 #define VKI_SFV_FD_SELF SFV_FD_SELF
0956 #define vki_sendfilevec sendfilevec
0957 #define vki_sendfilevec64 sendfilevec64
0958
0959
0960 #include <sys/shm.h>
0961 #include <sys/shm_impl.h>
0962 #define VKI_SHMAT SHMAT
0963 #define VKI_SHMCTL SHMCTL
0964 #define VKI_SHMDT SHMDT
0965 #define VKI_SHMGET SHMGET
0966 #define VKI_SHMIDS SHMIDS
0967 #if defined(SOLARIS_SHM_NEW)
0968 #define VKI_SHMADV SHMADV
0969 #define VKI_SHMGET_OSM SHMGET_OSM
0970 #define VKI_SHM_ADV_GET SHM_ADV_GET
0971 #define VKI_SHM_ADV_SET SHM_ADV_SET
0972 #endif
0973 #define VKI_SHM_LOCK SHM_LOCK
0974 #define VKI_SHM_RDONLY SHM_RDONLY
0975 #define VKI_SHM_UNLOCK SHM_UNLOCK
0976
0977 #define VKI_SHMLBA VKI_PAGE_SIZE
0978
0979 #define vki_shmid_ds shmid_ds
0980 #define vki_shmid_ds64 shmid_ds64
0981 #define vki_shmid_xds64 shmid_xds64
0982
0983
0984 #include <sys/siginfo.h>
0985
0986
0987 #define vki_sigevent sigevent
0988 #define vki_siginfo_t siginfo_t
0989
0990 #define VKI_SI_LWP SI_LWP
0991 #define VKI_SI_USER SI_USER
0992 #define VKI_SIGEV_PORT SIGEV_PORT
0993 #define VKI_SIGEV_THREAD SIGEV_THREAD
0994
0995
0996 #define VKI_TRAP_BRKPT TRAP_BRKPT
0997
0998
0999 #define VKI_CLD_EXITED CLD_EXITED
1000 #define VKI_CLD_KILLED CLD_KILLED
1001 #define VKI_CLD_DUMPED CLD_DUMPED
1002 #define VKI_CLD_TRAPPED CLD_TRAPPED
1003 #define VKI_CLD_STOPPED CLD_STOPPED
1004 #define VKI_CLD_CONTINUED CLD_CONTINUED
1005
1006
1007 #define VKI_ILL_ILLOPC ILL_ILLOPC
1008 #define VKI_ILL_ILLOPN ILL_ILLOPN
1009 #define VKI_ILL_ILLADR ILL_ILLADR
1010 #define VKI_ILL_ILLTRP ILL_ILLTRP
1011 #define VKI_ILL_PRVOPC ILL_PRVOPC
1012 #define VKI_ILL_PRVREG ILL_PRVREG
1013 #define VKI_ILL_COPROC ILL_COPROC
1014 #define VKI_ILL_BADSTK ILL_BADSTK
1015
1016
1017 #define VKI_FPE_INTDIV FPE_INTDIV
1018 #define VKI_FPE_INTOVF FPE_INTOVF
1019 #define VKI_FPE_FLTDIV FPE_FLTDIV
1020 #define VKI_FPE_FLTOVF FPE_FLTOVF
1021 #define VKI_FPE_FLTUND FPE_FLTUND
1022 #define VKI_FPE_FLTRES FPE_FLTRES
1023 #define VKI_FPE_FLTINV FPE_FLTINV
1024 #define VKI_FPE_FLTSUB FPE_FLTSUB
1025 #define VKI_FPE_FLTDEN FPE_FLTDEN
1026
1027
1028 #define VKI_SEGV_MAPERR SEGV_MAPERR
1029 #define VKI_SEGV_ACCERR SEGV_ACCERR
1030
1031
1032 #define VKI_BUS_ADRALN BUS_ADRALN
1033 #define VKI_BUS_ADRERR BUS_ADRERR
1034 #define VKI_BUS_OBJERR BUS_OBJERR
1035
1036
1037 #include <sys/signal.h>
1038
1039
1040
1041
1042
1043 #define _VKI_NSIG 128
1044 #define _VKI_MAXSIG MAXSIG
1045 #define _VKI_NSIG_BPW 32
1046 #define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
1047 #define vki_sigset_t sigset_t
1048 #define vki_sigaltstack sigaltstack
1049
1050 #define sig __sigbits
1051
1052
1053
1054 typedef struct sigaction vki_sigaction_toK_t;
1055 typedef struct sigaction vki_sigaction_fromK_t;
1056
1057 #define ksa_handler sa_handler
1058
1059 #define VKI_SA_ONSTACK SA_ONSTACK
1060 #define VKI_SA_ONESHOT SA_RESETHAND
1061 #define VKI_SA_NOMASK SA_NODEFER
1062
1063 #define VKI_MINSIGSTKSZ MINSIGSTKSZ
1064
1065 #define VKI_SS_ONSTACK SS_ONSTACK
1066 #define VKI_SS_DISABLE SS_DISABLE
1067
1068 #define vki_stack_t stack_t
1069
1070 #define VKI_SA_NOCLDSTOP SA_NOCLDSTOP
1071 #define VKI_SA_RESTART SA_RESTART
1072 #define VKI_SA_SIGINFO SA_SIGINFO
1073 #define VKI_SA_NOCLDWAIT SA_NOCLDWAIT
1074 #define VKI_SA_RESTORER 0
1075
1076 #define VKI_SIGHUP SIGHUP
1077 #define VKI_SIGINT SIGINT
1078 #define VKI_SIGQUIT SIGQUIT
1079 #define VKI_SIGILL SIGILL
1080 #define VKI_SIGTRAP SIGTRAP
1081 #define VKI_SIGABRT SIGABRT
1082 #define VKI_SIGEMT SIGEMT
1083 #define VKI_SIGFPE SIGFPE
1084 #define VKI_SIGKILL SIGKILL
1085 #define VKI_SIGBUS SIGBUS
1086 #define VKI_SIGSEGV SIGSEGV
1087 #define VKI_SIGSYS SIGSYS
1088 #define VKI_SIGPIPE SIGPIPE
1089 #define VKI_SIGALRM SIGALRM
1090 #define VKI_SIGTERM SIGTERM
1091 #define VKI_SIGUSR1 SIGUSR1
1092 #define VKI_SIGUSR2 SIGUSR2
1093 #define VKI_SIGCHLD SIGCHLD
1094 #define VKI_SIGPWR SIGPWR
1095 #define VKI_SIGWINCH SIGWINCH
1096 #define VKI_SIGURG SIGURG
1097 #define VKI_SIGIO SIGIO
1098 #define VKI_SIGSTOP SIGSTOP
1099 #define VKI_SIGTSTP SIGTSTP
1100 #define VKI_SIGCONT SIGCONT
1101 #define VKI_SIGTTIN SIGTTIN
1102 #define VKI_SIGTTOU SIGTTOU
1103 #define VKI_SIGVTALRM SIGVTALRM
1104 #define VKI_SIGPROF SIGPROF
1105 #define VKI_SIGXCPU SIGXCPU
1106 #define VKI_SIGXFSZ SIGXFSZ
1107 #define VKI_SIGWAITING SIGWAITING
1108 #define VKI_SIGLWP SIGLWP
1109 #define VKI_SIGFREEZE SIGFREEZE
1110 #define VKI_SIGTHAW SIGTHAW
1111 #define VKI_SIGCANCEL SIGCANCEL
1112 #define VKI_SIGLOST SIGLOST
1113 #define VKI_SIGXRES SIGXRES
1114 #define VKI_SIGJVM1 SIGJVM1
1115 #define VKI_SIGJVM2 SIGJVM2
1116
1117
1118
1119
1120 #define VKI_SIGRTMIN _SIGRTMIN
1121 #define VKI_SIGRTMAX _SIGRTMAX
1122
1123 #define VKI_SIG_DFL SIG_DFL
1124 #define VKI_SIG_IGN SIG_IGN
1125
1126 #define VKI_SIG_BLOCK SIG_BLOCK
1127 #define VKI_SIG_UNBLOCK SIG_UNBLOCK
1128 #define VKI_SIG_SETMASK SIG_SETMASK
1129
1130
1131 #include <sys/socket.h>
1132 #define vki_sa_family_t sa_family_t
1133 #define vki_sockaddr sockaddr
1134
1135 #define vki_socklen_t socklen_t
1136
1137 #define VKI_SOCK_STREAM SOCK_STREAM
1138
1139 #define VKI_SO_TYPE SO_TYPE
1140 #define VKI_SCM_RIGHTS SCM_RIGHTS
1141 #define VKI_SOL_SOCKET SOL_SOCKET
1142
1143 #define VKI_AF_UNIX AF_UNIX
1144 #define VKI_AF_INET AF_INET
1145 #define VKI_AF_INET6 AF_INET6
1146
1147 #define vki_msghdr msghdr
1148 #define vki_cmsghdr cmsghdr
1149
1150 #define VKI_CMSG_ALIGN(a) _CMSG_DATA_ALIGN(a)
1151 #define VKI_CMSG_DATA(cmsg) CMSG_DATA(cmsg)
1152 #define VKI_CMSG_FIRSTHDR(mhdr) CMSG_FIRSTHDR(mhdr)
1153 #define VKI_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
1154
1155
1156 #include <sys/socketvar.h>
1157 #define VKI_SOV_DEFAULT SOV_DEFAULT
1158
1159
1160 #include <sys/sockio.h>
1161 #define VKI_SIOCGIFCONF SIOCGIFCONF
1162 #define VKI_SIOCGIFFLAGS SIOCGIFFLAGS
1163 #define VKI_SIOCGIFNETMASK SIOCGIFNETMASK
1164 #define VKI_SIOCGIFNUM SIOCGIFNUM
1165 #define VKI_SIOCGLIFBRDADDR SIOCGLIFBRDADDR
1166 #define VKI_SIOCGLIFCONF SIOCGLIFCONF
1167 #define VKI_SIOCGLIFFLAGS SIOCGLIFFLAGS
1168 #define VKI_SIOCGLIFNETMASK SIOCGLIFNETMASK
1169 #define VKI_SIOCGLIFNUM SIOCGLIFNUM
1170
1171
1172 #if defined(SOLARIS_SPAWN_SYSCALL)
1173 #include <sys/spawn_impl.h>
1174 #define VKI_FA_CHDIR FA_CHDIR
1175 #define VKI_FA_CLOSE FA_CLOSE
1176 #define VKI_FA_CLOSEFROM FA_CLOSEFROM
1177 #define VKI_FA_DUP2 FA_DUP2
1178 #define VKI_FA_OPEN FA_OPEN
1179 #define VKI_POSIX_SPAWN_NOEXECERR_NP POSIX_SPAWN_NOEXECERR_NP
1180 #define VKI_POSIX_SPAWN_NOSIGCHLD_NP POSIX_SPAWN_NOSIGCHLD_NP
1181 #define VKI_POSIX_SPAWN_RESETIDS POSIX_SPAWN_RESETIDS
1182 #define VKI_POSIX_SPAWN_SETPGROUP POSIX_SPAWN_SETPGROUP
1183 #define VKI_POSIX_SPAWN_SETSCHEDPARAM POSIX_SPAWN_SETSCHEDPARAM
1184 #define VKI_POSIX_SPAWN_SETSCHEDULER POSIX_SPAWN_SETSCHEDULER
1185 #define VKI_POSIX_SPAWN_SETSID_NP POSIX_SPAWN_SETSID_NP
1186 #define VKI_POSIX_SPAWN_SETSIGDEF POSIX_SPAWN_SETSIGDEF
1187 #define VKI_POSIX_SPAWN_SETSIGIGN_NP POSIX_SPAWN_SETSIGIGN_NP
1188 #define VKI_POSIX_SPAWN_SETSIGMASK POSIX_SPAWN_SETSIGMASK
1189 #define VKI_POSIX_SPAWN_SETVAMASK_NP POSIX_SPAWN_SETVAMASK_NP
1190 #define VKI_POSIX_SPAWN_WAITPID_NP POSIX_SPAWN_WAITPID_NP
1191 #define VKI_SPAWN_VERSION SPAWN_VERSION
1192 #define vki_kfile_attr_t kfile_attr_t
1193 #define vki_kspawn_attr_t kspawn_attr_t
1194 #define vki_spawn_attr_t spawn_attr_t
1195 #endif
1196
1197
1198 #include <sys/stat.h>
1199 #define vki_stat stat
1200 #define vki_stat64 stat64
1201
1202 #define st_atime_nsec st_atim.tv_nsec
1203 #define st_mtime_nsec st_mtim.tv_nsec
1204 #define st_ctime_nsec st_ctim.tv_nsec
1205
1206 #define VKI_S_IFIFO S_IFIFO
1207 #define VKI_S_ISUID S_ISUID
1208 #define VKI_S_ISGID S_ISGID
1209
1210 #define VKI_S_IRUSR S_IRUSR
1211 #define VKI_S_IWUSR S_IWUSR
1212 #define VKI_S_IXUSR S_IXUSR
1213 #define VKI_S_IRGRP S_IRGRP
1214 #define VKI_S_IWGRP S_IWGRP
1215 #define VKI_S_IXGRP S_IXGRP
1216 #define VKI_S_IROTH S_IROTH
1217 #define VKI_S_IWOTH S_IWOTH
1218 #define VKI_S_IXOTH S_IXOTH
1219
1220 #define VKI_S_ISCHR S_ISCHR
1221 #define VKI_S_ISDIR S_ISDIR
1222 #define VKI_S_ISBLK S_ISBLK
1223 #define VKI_S_ISREG S_ISREG
1224 #define VKI_S_ISLNK S_ISLNK
1225
1226
1227 #include <sys/statfs.h>
1228 #define vki_statfs statfs
1229
1230
1231 #include <sys/statvfs.h>
1232 #define vki_statvfs statvfs
1233 #define vki_statvfs64 statvfs64
1234
1235
1236 #include <sys/stropts.h>
1237 #define VKI_I_CANPUT I_CANPUT
1238 #define VKI_I_FIND I_FIND
1239 #define VKI_I_FLUSH I_FLUSH
1240 #define VKI_I_PEEK I_PEEK
1241 #define VKI_I_PUSH I_PUSH
1242 #define VKI_I_STR I_STR
1243 #define vki_strbuf strbuf
1244 #define vki_strioctl strioctl
1245 #define vki_strpeek strpeek
1246
1247
1248 #include <sys/synch.h>
1249 #define vki_lwp_mutex_t lwp_mutex_t
1250 #define vki_lwp_cond_t lwp_cond_t
1251 #define vki_lwp_sema_t lwp_sema_t
1252 #define vki_lwp_rwlock_t lwp_rwlock_t
1253
1254
1255 #define vki_mutex_flag flags.flag1
1256 #define vki_mutex_type flags.mbcp_type_un.mtype_rcount.count_type1
1257 #define vki_mutex_rcount flags.mbcp_type_un.mtype_rcount.count_type2
1258 #define vki_mutex_owner data
1259 #define vki_mutex_lockw lock.lock64.pad[7]
1260 #define vki_mutex_waiters lock.lock64.pad[6]
1261 #define vki_mutex_ownerpid lock.lock32.ownerpid
1262
1263 #define vki_cond_type flags.type
1264 #define vki_cond_waiters_kernel flags.flag[3]
1265
1266 #define vki_sema_count count
1267 #define vki_sema_type type
1268 #define vki_sema_waiters flags[7]
1269
1270 #define vki_rwlock_readers readers
1271 #define vki_rwlock_type type
1272 #define vki_rwlock_owner readercv.data
1273 #define vki_rwlock_ownerpid writercv.data
1274
1275
1276 #include <sys/sysconfig.h>
1277 #define VKI_CONFIG_OPEN_FILES _CONFIG_OPEN_FILES
1278
1279
1280 #include <sys/sysi86.h>
1281 #define VKI_SI86FPSTART SI86FPSTART
1282
1283
1284 #if defined(HAVE_SYS_SYSNVL_H)
1285 #include <sys/sysnvl.h>
1286 #define VKI_SYSNVL_OP_GET SYSNVL_OP_GET
1287 #define VKI_SYSNVL_OP_UPDATE SYSNVL_OP_UPDATE
1288 #endif
1289
1290
1291 #include <sys/systeminfo.h>
1292 #define VKI_SI_SYSNAME SI_SYSNAME
1293 #define VKI_SI_HOSTNAME SI_HOSTNAME
1294 #define VKI_SI_RELEASE SI_RELEASE
1295 #define VKI_SI_VERSION SI_VERSION
1296 #define VKI_SI_MACHINE SI_MACHINE
1297 #define VKI_SI_ARCHITECTURE SI_ARCHITECTURE
1298 #define VKI_SI_HW_SERIAL SI_HW_SERIAL
1299 #define VKI_SI_HW_PROVIDER SI_HW_PROVIDER
1300 #define VKI_SI_SRPC_DOMAIN SI_SRPC_DOMAIN
1301
1302 #define VKI_SI_SET_HOSTNAME SI_SET_HOSTNAME
1303 #define VKI_SI_SET_SRCP_DOMAIN SI_SET_SRPC_DOMAIN
1304
1305 #define VKI_SI_PLATFORM SI_PLATFORM
1306 #define VKI_SI_ISALIST SI_ISALIST
1307 #define VKI_SI_DHCP_CACHE SI_DHCP_CACHE
1308 #define VKI_SI_ARCHITECTURE_32 SI_ARCHITECTURE_32
1309 #define VKI_SI_ARCHITECTURE_64 SI_ARCHITECTURE_64
1310 #define VKI_SI_ARCHITECTURE_K SI_ARCHITECTURE_K
1311 #define VKI_SI_ARCHITECTURE_NATIVE SI_ARCHITECTURE_NATIVE
1312
1313
1314 #include <sys/termio.h>
1315 #define vki_termio termio
1316
1317
1318 #include <sys/termios.h>
1319 #define vki_termios termios
1320 #define VKI_TCGETA TCGETA
1321 #define VKI_TCGETS TCGETS
1322 #define VKI_TCSETS TCSETS
1323 #define VKI_TCSETSF TCSETSF
1324 #define VKI_TCSETSW TCSETSW
1325 #define VKI_TIOCGPGRP TIOCGPGRP
1326 #define VKI_TIOCGSID TIOCGSID
1327 #define VKI_TIOCGWINSZ TIOCGWINSZ
1328 #define VKI_TIOCNOTTY TIOCNOTTY
1329 #define VKI_TIOCSCTTY TIOCSCTTY
1330 #define VKI_TIOCSPGRP TIOCSPGRP
1331 #define VKI_TIOCSWINSZ TIOCSWINSZ
1332 #define vki_winsize winsize
1333
1334
1335 #include <sys/time.h>
1336 #define VKI_CLOCK_MONOTONIC CLOCK_MONOTONIC
1337 #define VKI_CLOCK_THREAD_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID
1338
1339 #define vki_clockid_t clockid_t
1340 #define vki_timespec timespec
1341 #define vki_timespec_t timespec_t
1342 #define vki_timeval timeval
1343 #define vki_timezone timezone
1344 #define vki_itimerspec itimerspec
1345 #define vki_itimerval itimerval
1346
1347
1348 #include <sys/times.h>
1349 #define vki_tms tms
1350
1351
1352 #include <sys/tsol/label_macro.h>
1353 #define vki_bslabel_t bslabel_t
1354
1355
1356
1357
1358
1359 #if !defined(__cplusplus)
1360 #include <sys/tsol/tndb.h>
1361 #define VKI_TNDB_DELETE TNDB_DELETE
1362 #define VKI_TNDB_FLUSH TNDB_FLUSH
1363 #define VKI_TNDB_GET TNDB_GET
1364 #if defined(SOLARIS_TNDB_GET_TNIP)
1365 #define VKI_TNDB_GET_TNIP TNDB_GET_TNIP
1366 #endif
1367 #define VKI_TNDB_LOAD TNDB_LOAD
1368 #define vki_tsol_mlpent_t tsol_mlpent_t
1369 #define vki_tsol_rhent_t tsol_rhent_t
1370 #define vki_tsol_tpent_t tsol_tpent_t
1371 #endif
1372
1373
1374 #include <sys/tsol/tsyscall.h>
1375 #define VKI_TSOL_FGETLABEL TSOL_FGETLABEL
1376 #define VKI_TSOL_GETLABEL TSOL_GETLABEL
1377 #define VKI_TSOL_TNMLP TSOL_TNMLP
1378 #define VKI_TSOL_TNRH TSOL_TNRH
1379 #define VKI_TSOL_TNRHTP TSOL_TNRHTP
1380 #define VKI_TSOL_SYSLABELING TSOL_SYSLABELING
1381 #if defined(SOLARIS_TSOL_CLEARANCE)
1382 #define VKI_TSOL_GETCLEARANCE TSOL_GETCLEARANCE
1383 #define VKI_TSOL_SETCLEARANCE TSOL_SETCLEARANCE
1384 #endif
1385
1386
1387 #include <sys/ttold.h>
1388 #define vki_sgttyb sgttyb
1389
1390
1391 #include <ucontext.h>
1392
1393
1394 #if defined(VGP_x86_solaris)
1395 #define VKI_SS SS
1396 #define VKI_UESP UESP
1397 #define VKI_EFL EFL
1398 #define VKI_CS CS
1399 #define VKI_EIP EIP
1400 #define VKI_ERR 13
1401 #define VKI_TRAPNO TRAPNO
1402 #define VKI_EAX EAX
1403 #define VKI_ECX ECX
1404 #define VKI_EDX EDX
1405 #define VKI_EBX EBX
1406 #define VKI_ESP ESP
1407 #define VKI_EBP EBP
1408 #define VKI_ESI ESI
1409 #define VKI_EDI EDI
1410 #define VKI_DS DS
1411 #define VKI_ES ES
1412 #define VKI_FS FS
1413 #define VKI_GS GS
1414
1415
1416 #define VKI_REG_ERR VKI_ERR
1417 #define VKI_REG_TRAPNO VKI_TRAPNO
1418
1419 #define VKI_EFLAGS_ID_BIT (1 << 21)
1420
1421 #elif defined(VGP_amd64_solaris)
1422 #define VKI_REG_GSBASE REG_GSBASE
1423 #define VKI_REG_FSBASE REG_FSBASE
1424 #define VKI_REG_DS REG_DS
1425 #define VKI_REG_ES REG_ES
1426 #define VKI_REG_GS REG_GS
1427 #define VKI_REG_FS REG_FS
1428 #define VKI_REG_SS REG_SS
1429 #define VKI_REG_RSP REG_RSP
1430 #define VKI_REG_RFL REG_RFL
1431 #define VKI_REG_CS REG_CS
1432 #define VKI_REG_RIP REG_RIP
1433 #define VKI_REG_ERR REG_ERR
1434 #define VKI_REG_TRAPNO REG_TRAPNO
1435 #define VKI_REG_RAX REG_RAX
1436 #define VKI_REG_RCX REG_RCX
1437 #define VKI_REG_RDX REG_RDX
1438 #define VKI_REG_RBX REG_RBX
1439 #define VKI_REG_RBP REG_RBP
1440 #define VKI_REG_RSI REG_RSI
1441 #define VKI_REG_RDI REG_RDI
1442 #define VKI_REG_R8 REG_R8
1443 #define VKI_REG_R9 REG_R9
1444 #define VKI_REG_R10 REG_R10
1445 #define VKI_REG_R11 REG_R11
1446 #define VKI_REG_R12 REG_R12
1447 #define VKI_REG_R13 REG_R13
1448 #define VKI_REG_R14 REG_R14
1449 #define VKI_REG_R15 REG_R15
1450
1451 #define VKI_RFLAGS_ID_BIT (1 << 21)
1452
1453 #else
1454 #error "Unknown platform"
1455 #endif
1456
1457 #define vki_fpregset_t fpregset_t
1458
1459
1460 #undef r_r0
1461 #undef r_r1
1462 #undef r_fp
1463 #undef r_sp
1464 #undef r_pc
1465 #undef r_ps
1466 #undef ERR
1467
1468 #if defined(VGP_x86_solaris)
1469
1470
1471
1472
1473
1474
1475 typedef struct sysv_ucontext sysv_ucontext_t;
1476 struct sysv_ucontext {
1477 unsigned long uc_flags;
1478 sysv_ucontext_t *uc_link;
1479 sigset_t uc_sigmask;
1480 stack_t uc_stack;
1481 mcontext_t uc_mcontext;
1482 long uc_filler[5];
1483 };
1484 #define VKI_UC_GUEST_CC_OP(uc) (*(UWord*)&(uc)->uc_filler[0])
1485 #define VKI_UC_GUEST_CC_NDEP(uc) (*(UWord*)&(uc)->uc_filler[1])
1486 #define VKI_UC_GUEST_CC_DEP1(uc) (*(UWord*)&(uc)->uc_filler[2])
1487 #define VKI_UC_GUEST_CC_DEP2(uc) (*(UWord*)&(uc)->uc_filler[3])
1488 #define VKI_UC_GUEST_EFLAGS_NEG(uc) \
1489 (*(UWord*)&(uc)->uc_mcontext.fpregs.fp_reg_set.fpchip_state.__pad[0])
1490 #define VKI_UC_GUEST_EFLAGS_CHECKSUM(uc) \
1491 (*(UWord*)&(uc)->uc_mcontext.fpregs.fp_reg_set.fpchip_state.__pad[1])
1492 #define VKI_UC_SIGNO(uc) (*(UWord*)&(uc)->uc_filler[4])
1493 #define VKI_UC_SIGNO_CONST(uc) (*(const UWord*)&(uc)->uc_filler[4])
1494
1495 #define vki_ucontext_t sysv_ucontext_t
1496 #define vki_ucontext sysv_ucontext
1497
1498 #elif defined(VGP_amd64_solaris)
1499
1500
1501
1502 #define vki_ucontext ucontext
1503 #define vki_ucontext_t ucontext_t
1504 #define VKI_UC_MC_FP_FX_IGN2(uc) \
1505 (uc)->uc_mcontext.fpregs.fp_reg_set.fpchip_state.__fx_ign2
1506 #define VKI_UC_GUEST_CC_OP(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[0])
1507 #define VKI_UC_GUEST_CC_NDEP(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[1])
1508 #define VKI_UC_GUEST_CC_DEP1(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[2])
1509 #define VKI_UC_GUEST_CC_DEP2(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[3])
1510 #define VKI_UC_GUEST_RFLAGS_NEG(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[4])
1511 #define VKI_UC_GUEST_RFLAGS_CHECKSUM(uc) \
1512 (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[5])
1513 #define VKI_UC_SIGNO(uc) (*(UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[6])
1514 #define VKI_UC_SIGNO_CONST(uc) (*(const UWord *) &VKI_UC_MC_FP_FX_IGN2(uc)[6])
1515
1516 #else
1517 #error "Unknown platform"
1518 #endif
1519
1520 #if defined(SOLARIS_FPCHIP_STATE_TAKES_UNDERSCORE)
1521 #define vki_fpchip_state _fpchip_state
1522 #else
1523 #define vki_fpchip_state fpchip_state
1524 #endif
1525
1526 #define VKI_GETCONTEXT GETCONTEXT
1527 #define VKI_SETCONTEXT SETCONTEXT
1528 #define VKI_GETUSTACK GETUSTACK
1529 #define VKI_SETUSTACK SETUSTACK
1530
1531 #define VKI_UC_SIGMASK UC_SIGMASK
1532 #define VKI_UC_STACK UC_STACK
1533 #define VKI_UC_CPU UC_CPU
1534 #define VKI_UC_FPU UC_FPU
1535 #define VKI_UC_ALL UC_ALL
1536
1537 #include <sys/uio.h>
1538 #define vki_iovec iovec
1539
1540
1541 #include <sys/un.h>
1542 #define vki_sockaddr_un sockaddr_un
1543
1544
1545 #if defined(SOLARIS_UUIDSYS_SYSCALL)
1546 #include <sys/uuid.h>
1547 #define vki_uuid uuid
1548 #endif
1549
1550
1551 #include <sys/utsname.h>
1552 #define vki_utsname utsname
1553
1554 #define vki_new_utsname utsname
1555
1556
1557 #include <sys/vm_usage.h>
1558 #define vki_vmusage_t vmusage_t
1559
1560
1561 #include <sys/wait.h>
1562 #define VKI_WEXITED WEXITED
1563 #define VKI_WTRAPPED WTRAPPED
1564
1565 #define VKI_WSTOPFLG WSTOPFLG
1566 #define VKI_WCONTFLG WCONTFLG
1567 #define VKI_WCOREFLG WCOREFLG
1568
1569
1570 #include <sys/zone.h>
1571 #define VKI_ZONE_ADD_DATALINK ZONE_ADD_DATALINK
1572 #define VKI_ZONE_ATTR_NAME ZONE_ATTR_NAME
1573 #define VKI_ZONE_BOOT ZONE_BOOT
1574 #define VKI_ZONE_CHECK_DATALINK ZONE_CHECK_DATALINK
1575 #define VKI_ZONE_CREATE ZONE_CREATE
1576 #define VKI_ZONE_DEL_DATALINK ZONE_DEL_DATALINK
1577 #define VKI_ZONE_DESTROY ZONE_DESTROY
1578 #define VKI_ZONE_ENTER ZONE_ENTER
1579 #define VKI_ZONE_GETATTR ZONE_GETATTR
1580 #define VKI_ZONE_LIST ZONE_LIST
1581 #define VKI_ZONE_LIST_DATALINK ZONE_LIST_DATALINK
1582 #define VKI_ZONE_LOOKUP ZONE_LOOKUP
1583 #define VKI_ZONE_SETATTR ZONE_SETATTR
1584 #define VKI_ZONE_SHUTDOWN ZONE_SHUTDOWN
1585 #if defined(SOLARIS_ZONE_DEFUNCT)
1586 #define VKI_ZONE_GETATTR_DEFUNCT ZONE_GETATTR_DEFUNCT
1587 #define VKI_ZONE_LIST_DEFUNCT ZONE_LIST_DEFUNCT
1588 #endif
1589 #define VKI_ZONENAME_MAX ZONENAME_MAX
1590 #define vki_zone_def zone_def
1591 #define vki_zoneid_t zoneid_t
1592
1593
1594
1595 #define VKI_UCREDSYS_UCREDGET 0
1596 #define VKI_UCREDSYS_GETPEERUCRED 1
1597 struct ucred_s {
1598 vki_uint32_t uc_size;
1599 vki_uint32_t uc_credoff;
1600 vki_uint32_t uc_privoff;
1601 vki_pid_t uc_pid;
1602 vki_uint32_t uc_audoff;
1603 vki_zoneid_t uc_zoneid;
1604 vki_projid_t uc_projid;
1605 vki_uint32_t uc_labeloff;
1606 };
1607
1608
1609
1610
1611 #define VKI_ELF_OLD_PR_PCINVAL 0x0080
1612
1613 typedef struct vki_elf_prpsinfo {
1614 char pr_state;
1615 char pr_sname;
1616 char pr_zomb;
1617 char pr_nice;
1618 vki_uint_t pr_flag;
1619 vki_uid_t pr_uid;
1620 vki_gid_t pr_gid;
1621 vki_pid_t pr_pid;
1622 vki_pid_t pr_ppid;
1623 vki_pid_t pr_pgrp;
1624 vki_pid_t pr_sid;
1625 vki_caddr_t pr_addr;
1626 vki_size_t pr_size;
1627 vki_size_t pr_rssize;
1628 vki_caddr_t pr_wchan;
1629 vki_timespec_t pr_start;
1630 vki_timespec_t pr_time;
1631 int pr_pri;
1632 char pr_oldpri;
1633 char pr_cpu;
1634 vki_o_dev_t pr_ottydev;
1635 vki_dev_t pr_lttydev;
1636 char pr_clname[8];
1637 char pr_fname[16];
1638 char pr_psargs[80];
1639 short pr_syscall;
1640 short pr_fill;
1641 vki_timespec_t pr_ctime;
1642 vki_size_t pr_bysize;
1643 vki_size_t pr_byrssize;
1644 int pr_argc;
1645 char **pr_argv;
1646 char **pr_envp;
1647 int pr_wstat;
1648
1649
1650
1651 ushort_t pr_pctcpu;
1652 ushort_t pr_pctmem;
1653 vki_uid_t pr_euid;
1654 vki_gid_t pr_egid;
1655 vki_id_t pr_aslwpid;
1656 char pr_dmodel;
1657 char pr_pad[3];
1658 int pr_filler[6];
1659 } vki_elf_prpsinfo_t;
1660
1661 typedef struct vki_elf_prstatus {
1662 int pr_flags;
1663 short pr_why;
1664 short pr_what;
1665 vki_siginfo_t pr_info;
1666 short pr_cursig;
1667 ushort_t pr_nlwp;
1668 vki_sigset_t pr_sigpend;
1669 vki_sigset_t pr_sighold;
1670 struct vki_sigaltstack pr_altstack;
1671 struct sigaction pr_action;
1672 vki_pid_t pr_pid;
1673 vki_pid_t pr_ppid;
1674 vki_pid_t pr_pgrp;
1675 vki_pid_t pr_sid;
1676 vki_timespec_t pr_utime;
1677 vki_timespec_t pr_stime;
1678 vki_timespec_t pr_cutime;
1679 vki_timespec_t pr_cstime;
1680 char pr_clname[PRCLSZ];
1681 short pr_syscall;
1682 short pr_nsysarg;
1683 long pr_sysarg[PRSYSARGS];
1684 vki_id_t pr_who;
1685 vki_sigset_t pr_lwppend;
1686 struct vki_ucontext *pr_oldcontext;
1687 vki_caddr_t pr_brkbase;
1688 vki_size_t pr_brksize;
1689 vki_caddr_t pr_stkbase;
1690 vki_size_t pr_stksize;
1691 short pr_processor;
1692 short pr_bind;
1693 long pr_instr;
1694 vki_prgregset_t pr_reg;
1695 } vki_elf_prstatus_t;
1696
1697
1698
1699 #if defined(VGP_x86_solaris)
1700 struct vki_sigframe {
1701
1702 void *return_addr;
1703 int a1_signo;
1704 vki_siginfo_t *a2_siginfo;
1705 vki_ucontext_t *a3_ucontext;
1706
1707 vki_ucontext_t ucontext;
1708 vki_siginfo_t siginfo;
1709 };
1710
1711 #elif defined(VGP_amd64_solaris)
1712 struct vki_sigframe {
1713 void *return_addr;
1714 long a1_signo;
1715 vki_siginfo_t *a2_siginfo;
1716
1717 vki_ucontext_t ucontext;
1718 vki_siginfo_t siginfo;
1719 };
1720
1721 #else
1722 #error "Unknown platform"
1723 #endif
1724 typedef struct vki_sigframe vki_sigframe_t;
1725
1726 #endif
1727
1728
1729
1730