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