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