958 |
958 |
.align = { __alignof__(struct target_termios), __alignof__(struct host_termios) },
|
959 |
959 |
};
|
960 |
960 |
|
|
961 |
static bitmask_transtbl mmap_flags_tbl[] = {
|
|
962 |
{ TARGET_MAP_SHARED, TARGET_MAP_SHARED, MAP_SHARED, MAP_SHARED },
|
|
963 |
{ TARGET_MAP_PRIVATE, TARGET_MAP_PRIVATE, MAP_PRIVATE, MAP_PRIVATE },
|
|
964 |
{ TARGET_MAP_FIXED, TARGET_MAP_FIXED, MAP_FIXED, MAP_FIXED },
|
|
965 |
{ TARGET_MAP_ANONYMOUS, TARGET_MAP_ANONYMOUS, MAP_ANONYMOUS, MAP_ANONYMOUS },
|
|
966 |
{ TARGET_MAP_GROWSDOWN, TARGET_MAP_GROWSDOWN, MAP_GROWSDOWN, MAP_GROWSDOWN },
|
|
967 |
{ TARGET_MAP_DENYWRITE, TARGET_MAP_DENYWRITE, MAP_DENYWRITE, MAP_DENYWRITE },
|
|
968 |
{ TARGET_MAP_EXECUTABLE, TARGET_MAP_EXECUTABLE, MAP_EXECUTABLE, MAP_EXECUTABLE },
|
|
969 |
{ TARGET_MAP_LOCKED, TARGET_MAP_LOCKED, MAP_LOCKED, MAP_LOCKED },
|
|
970 |
{ 0, 0, 0, 0 }
|
|
971 |
};
|
|
972 |
|
961 |
973 |
#ifdef TARGET_I386
|
962 |
974 |
|
963 |
975 |
/* NOTE: there is really one LDT for all the threads */
|
... | ... | |
1744 |
1756 |
v4 = tswap32(vptr[3]);
|
1745 |
1757 |
v5 = tswap32(vptr[4]);
|
1746 |
1758 |
v6 = tswap32(vptr[5]);
|
1747 |
|
ret = get_errno(target_mmap(v1, v2, v3, v4, v5, v6));
|
|
1759 |
ret = get_errno(target_mmap(v1, v2, v3,
|
|
1760 |
target_to_host_bitmask(v4, mmap_flags_tbl),
|
|
1761 |
v5, v6));
|
1748 |
1762 |
}
|
1749 |
1763 |
break;
|
1750 |
1764 |
#endif
|
... | ... | |
1753 |
1767 |
#else
|
1754 |
1768 |
case TARGET_NR_mmap:
|
1755 |
1769 |
#endif
|
1756 |
|
ret = get_errno(target_mmap(arg1, arg2, arg3, arg4, arg5,
|
|
1770 |
ret = get_errno(target_mmap(arg1, arg2, arg3,
|
|
1771 |
target_to_host_bitmask(arg4, mmap_flags_tbl),
|
|
1772 |
arg5,
|
1757 |
1773 |
arg6 << TARGET_PAGE_BITS));
|
1758 |
1774 |
break;
|
1759 |
1775 |
case TARGET_NR_munmap:
|