area 116 mtcp/mtcp_restart.c static void adjust_for_smaller_file_size(Area *area, int fd);
area 484 mtcp/mtcp_restart.c Area area;
area 487 mtcp/mtcp_restart.c mtcp_readfile(fd, &area, sizeof area);
area 488 mtcp/mtcp_restart.c if (area.size == -1) break;
area 489 mtcp/mtcp_restart.c if ((area.prot & MTCP_PROT_ZERO_PAGE) == 0) {
area 490 mtcp/mtcp_restart.c void *addr = mtcp_sys_mmap(0, area.size, PROT_WRITE | PROT_READ,
area 496 mtcp/mtcp_restart.c mtcp_readfile(fd, addr, area.size);
area 497 mtcp/mtcp_restart.c if (mtcp_sys_munmap(addr, area.size) == -1) {
area 506 mtcp/mtcp_restart.c area.addr, area.addr + area.size,
area 507 mtcp/mtcp_restart.c ( area.prot & PROT_READ ? 'r' : '-' ),
area 508 mtcp/mtcp_restart.c ( area.prot & PROT_WRITE ? 'w' : '-' ),
area 509 mtcp/mtcp_restart.c ( area.prot & PROT_EXEC ? 'x' : '-' ),
area 510 mtcp/mtcp_restart.c ( area.flags & MAP_SHARED ? 's'
area 511 mtcp/mtcp_restart.c : ( area.flags & MAP_ANONYMOUS ? 'p' : '-' ) ),
area 513 mtcp/mtcp_restart.c area.name);
area 597 mtcp/mtcp_restart.c Area area;
area 609 mtcp/mtcp_restart.c while (mtcp_readmapsline(mapsfd, &area)) {
area 610 mtcp/mtcp_restart.c if (area.addr >= rinfo->restore_addr && area.addr < rinfo->restore_end) {
area 612 mtcp/mtcp_restart.c } else if (mtcp_strcmp(area.name, "[vdso]") == 0) {
area 614 mtcp/mtcp_restart.c vdsoStart = area.addr;
area 615 mtcp/mtcp_restart.c vdsoEnd = area.endAddr;
area 617 mtcp/mtcp_restart.c area.addr, area.endAddr, rinfo->vdsoStart, rinfo->vdsoEnd);
area 618 mtcp/mtcp_restart.c } else if (mtcp_strcmp(area.name, "[vvar]") == 0) {
area 620 mtcp/mtcp_restart.c vvarStart = area.addr;
area 621 mtcp/mtcp_restart.c vvarEnd = area.endAddr;
area 622 mtcp/mtcp_restart.c } else if (mtcp_strcmp(area.name, "[vsyscall]") == 0) {
area 624 mtcp/mtcp_restart.c } else if (mtcp_strcmp(area.name, "[vectors]") == 0) {
area 626 mtcp/mtcp_restart.c } else if (area.size > 0 ) {
area 627 mtcp/mtcp_restart.c DPRINTF("***INFO: munmapping (%p-%p)\n", area.addr, area.endAddr);
area 628 mtcp/mtcp_restart.c if (mtcp_sys_munmap(area.addr, area.size) == -1) {
area 630 mtcp/mtcp_restart.c area.name, area.flags, area.addr, area.size,
area 801 mtcp/mtcp_restart.c Area area;
area 802 mtcp/mtcp_restart.c mtcp_readfile(fd, &area, sizeof area);
area 803 mtcp/mtcp_restart.c if (area.size == -1) return -1;
area 805 mtcp/mtcp_restart.c if (area.name && mtcp_strstr(area.name, "[heap]")
area 806 mtcp/mtcp_restart.c && mtcp_sys_brk(NULL) != area.addr + area.size) {
area 808 mtcp/mtcp_restart.c mtcp_sys_brk(NULL), area.addr + area.size);
area 814 mtcp/mtcp_restart.c if (area.flags & MAP_SHARED) {
area 815 mtcp/mtcp_restart.c area.flags = area.flags ^ MAP_SHARED;
area 816 mtcp/mtcp_restart.c area.flags = area.flags | MAP_PRIVATE | MAP_ANONYMOUS;
area 822 mtcp/mtcp_restart.c if ((area.prot & MTCP_PROT_ZERO_PAGE) != 0) {
area 824 mtcp/mtcp_restart.c area.size, area.addr);
area 825 mtcp/mtcp_restart.c mmappedat = mtcp_sys_mmap (area.addr, area.size,
area 826 mtcp/mtcp_restart.c area.prot & ~MTCP_PROT_ZERO_PAGE,
area 827 mtcp/mtcp_restart.c area.flags | MAP_FIXED, -1, 0);
area 829 mtcp/mtcp_restart.c if (mmappedat != area.addr) {
area 831 mtcp/mtcp_restart.c mtcp_sys_errno, area.size, area.addr);
area 841 mtcp/mtcp_restart.c else if (area.flags & MAP_ANONYMOUS) {
area 850 mtcp/mtcp_restart.c if (area.name[0] == '/') { /* If not null string, not [stack] or [vdso] */
area 851 mtcp/mtcp_restart.c imagefd = mtcp_sys_open (area.name, O_RDONLY, 0);
area 853 mtcp/mtcp_restart.c area.flags ^= MAP_ANONYMOUS;
area 856 mtcp/mtcp_restart.c if (area.flags & MAP_ANONYMOUS) {
area 858 mtcp/mtcp_restart.c area.size, area.addr);
area 862 mtcp/mtcp_restart.c area.size, area.addr, area.name, area.offset);
area 871 mtcp/mtcp_restart.c mmappedat = mtcp_sys_mmap (area.addr, area.size, area.prot | PROT_WRITE,
area 872 mtcp/mtcp_restart.c area.flags, imagefd, area.offset);
area 876 mtcp/mtcp_restart.c mtcp_sys_errno, area.size, area.addr);
area 886 mtcp/mtcp_restart.c if (mmappedat != area.addr && !try_skipping_existing_segment) {
area 887 mtcp/mtcp_restart.c MTCP_PRINTF("area at %p got mmapped to %p\n", area.addr, mmappedat);
area 892 mtcp/mtcp_restart.c adjust_for_smaller_file_size(&area, imagefd);
area 895 mtcp/mtcp_restart.c if (!(area.flags & MAP_ANONYMOUS)) mtcp_sys_close (imagefd);
area 899 mtcp/mtcp_restart.c mtcp_skipfile(fd, area.size);
area 905 mtcp/mtcp_restart.c mtcp_readfile(fd, area.addr, area.size);
area 906 mtcp/mtcp_restart.c if (!(area.prot & PROT_WRITE)) {
area 907 mtcp/mtcp_restart.c if (mtcp_sys_mprotect (area.addr, area.size, area.prot) < 0) {
area 909 mtcp/mtcp_restart.c mtcp_sys_errno, area.size, area.addr);
area 928 mtcp/mtcp_restart.c static void adjust_for_smaller_file_size(Area *area, int fd)
area 933 mtcp/mtcp_restart.c if (area->offset + area->size > curr_size) {
area 934 mtcp/mtcp_restart.c size_t diff_in_size = (area->offset + area->size) - curr_size;
area 937 mtcp/mtcp_restart.c VA anon_start_addr = area->addr + (area->size - anon_area_size);
area 941 mtcp/mtcp_restart.c area->name, curr_size, area->size);
area 943 mtcp/mtcp_restart.c area->prot | PROT_WRITE,
area 1027 mtcp/mtcp_restart.c Area area;
area 1034 mtcp/mtcp_restart.c while (mtcp_readmapsline(mapsfd, &area)) {
area 1035 mtcp/mtcp_restart.c if (doAreasOverlap(addr, size, area.addr, area.size)) {
area 1048 mtcp/mtcp_restart.c Area area;
area 1056 mtcp/mtcp_restart.c while (mtcp_readmapsline(mapsfd, &area)) {
area 1057 mtcp/mtcp_restart.c if ((mtcp_strendswith(area.name, BINARY_NAME) ||
area 1058 mtcp/mtcp_restart.c mtcp_strendswith(area.name, BINARY_NAME_M32)) &&
area 1059 mtcp/mtcp_restart.c (area.prot & PROT_EXEC) &&
area 1068 mtcp/mtcp_restart.c (area.addr < this_fn && (area.addr + area.size) > this_fn)) {
area 1069 mtcp/mtcp_restart.c *text_addr = area.addr;
area 1070 mtcp/mtcp_restart.c *size = area.size;
area 408 mtcp/mtcp_util.c int mtcp_readmapsline (int mapsfd, Area *area)
area 440 mtcp/mtcp_util.c area -> offset = offset;
area 447 mtcp/mtcp_util.c area -> name[0] = '\0';
area 452 mtcp/mtcp_util.c area -> name[i++] = c;
area 453 mtcp/mtcp_util.c if (i == sizeof area -> name) goto skipeol;
area 456 mtcp/mtcp_util.c area -> name[i] = '\0';
area 461 mtcp/mtcp_util.c area -> addr = startaddr;
area 462 mtcp/mtcp_util.c area -> endAddr = endaddr;
area 463 mtcp/mtcp_util.c area -> size = endaddr - startaddr;
area 464 mtcp/mtcp_util.c area -> prot = 0;
area 465 mtcp/mtcp_util.c if (rflag == 'r') area -> prot |= PROT_READ;
area 466 mtcp/mtcp_util.c if (wflag == 'w') area -> prot |= PROT_WRITE;
area 467 mtcp/mtcp_util.c if (xflag == 'x') area -> prot |= PROT_EXEC;
area 468 mtcp/mtcp_util.c area -> flags = MAP_FIXED;
area 469 mtcp/mtcp_util.c if (sflag == 's') area -> flags |= MAP_SHARED;
area 470 mtcp/mtcp_util.c if (sflag == 'p') area -> flags |= MAP_PRIVATE;
area 471 mtcp/mtcp_util.c if (area -> name[0] == '\0') area -> flags |= MAP_ANONYMOUS;
area 473 mtcp/mtcp_util.c area->devmajor = devmajor;
area 474 mtcp/mtcp_util.c area->devminor = devminor;
area 475 mtcp/mtcp_util.c area->inodenum = inodenum;
area 515 mtcp/mtcp_util.c Area area;
area 524 mtcp/mtcp_util.c while (mtcp_readmapsline (mapsfd, &area)) {
area 525 mtcp/mtcp_util.c VA start_addr = area.addr;
area 526 mtcp/mtcp_util.c VA end_addr = area.addr + area.size;
area 531 mtcp/mtcp_util.c mtcp_strcpy(filename, area.name);
area 532 mtcp/mtcp_util.c lib_inode = area.inodenum;
area 537 mtcp/mtcp_util.c area.inodenum == lib_inode) {
area 538 mtcp/mtcp_util.c MTCP_ASSERT(mtcp_strcmp(filename, area.name) == 0);
area 539 mtcp/mtcp_util.c MTCP_ASSERT(area.addr == text.end_addr);
area 540 mtcp/mtcp_util.c if (area.prot == 0) {
area 546 mtcp/mtcp_util.c MTCP_ASSERT(mtcp_sys_mmap(start_addr, area.size, PROT_READ,
area 558 mtcp/mtcp_util.c area.inodenum == lib_inode) {
area 559 mtcp/mtcp_util.c MTCP_ASSERT(mtcp_strcmp(filename, area.name) == 0);
area 560 mtcp/mtcp_util.c MTCP_ASSERT(area.addr == guard.end_addr);
area 561 mtcp/mtcp_util.c if (area.prot == PROT_READ ||
area 564 mtcp/mtcp_util.c area.prot == (PROT_READ|PROT_EXEC)) {
area 574 mtcp/mtcp_util.c area.inodenum == lib_inode) {
area 575 mtcp/mtcp_util.c MTCP_ASSERT(mtcp_strcmp(filename, area.name) == 0);
area 576 mtcp/mtcp_util.c MTCP_ASSERT(area.addr == rodata.end_addr);
area 577 mtcp/mtcp_util.c MTCP_ASSERT(area.prot == (PROT_READ|PROT_WRITE) ||
area 580 mtcp/mtcp_util.c area.prot == (PROT_READ|PROT_WRITE|PROT_EXEC));
area 586 mtcp/mtcp_util.c area.name[0] == '\0') {
area 592 mtcp/mtcp_util.c MTCP_ASSERT(area.addr == rwdata.end_addr);
area 593 mtcp/mtcp_util.c MTCP_ASSERT(area.prot == (PROT_READ|PROT_WRITE) ||
area 596 mtcp/mtcp_util.c area.prot == (PROT_READ|PROT_WRITE|PROT_EXEC));
area 184 mtcp/mtcp_util.h int mtcp_readmapsline (int mapsfd, Area *area);
area 222 plugin/ipc/file/fileconnlist.cpp ProcMapsArea area;
area 228 plugin/ipc/file/fileconnlist.cpp while (procSelfMaps.getNextArea(&area)) {
area 229 plugin/ipc/file/fileconnlist.cpp if ((area.flags & MAP_SHARED) && area.prot != 0) {
area 230 plugin/ipc/file/fileconnlist.cpp if (strstr(area.name, "ptraceSharedInfo") != NULL ||
area 231 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "dmtcpPidMap") != NULL ||
area 232 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "dmtcpSharedArea") != NULL ||
area 233 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "dmtcpSharedArea") != NULL ||
area 234 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "synchronization-log") != NULL ||
area 235 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "infiniband") != NULL ||
area 236 plugin/ipc/file/fileconnlist.cpp strstr(area.name, "synchronization-read-log") != NULL) {
area 240 plugin/ipc/file/fileconnlist.cpp if (Util::isNscdArea(area) ||
area 241 plugin/ipc/file/fileconnlist.cpp Util::isIBShmArea(area) ||
area 242 plugin/ipc/file/fileconnlist.cpp Util::isSysVShmArea(area)) {
area 250 plugin/ipc/file/fileconnlist.cpp JWARNING(msync(area.addr, area.size, MS_INVALIDATE) == 0)
area 251 plugin/ipc/file/fileconnlist.cpp (area.addr) (area.size) (area.name) (area.offset) (JASSERT_ERRNO);
area 253 plugin/ipc/file/fileconnlist.cpp if (jalib::Filesystem::FileExists(area.name)) {
area 254 plugin/ipc/file/fileconnlist.cpp if (_real_access(area.name, W_OK) == 0) {
area 255 plugin/ipc/file/fileconnlist.cpp JTRACE("Will checkpoint shared memory area") (area.name);
area 256 plugin/ipc/file/fileconnlist.cpp int flags = Util::memProtToOpenFlags(area.prot);
area 257 plugin/ipc/file/fileconnlist.cpp int fd = _real_open(area.name, flags, 0);
area 258 plugin/ipc/file/fileconnlist.cpp JASSERT(fd != -1) (JASSERT_ERRNO) (area.name);
area 260 plugin/ipc/file/fileconnlist.cpp new FileConnection(area.name, flags, 0, FileConnection::FILE_SHM);
area 262 plugin/ipc/file/fileconnlist.cpp shmAreas.push_back(area);
area 275 plugin/ipc/file/fileconnlist.cpp JASSERT(_real_mmap(area.addr, area.size, PROT_NONE,
area 279 plugin/ipc/file/fileconnlist.cpp JTRACE("Will not checkpoint shared memory area") (area.name);
area 283 plugin/ipc/file/fileconnlist.cpp JASSERT(Util::strEndsWith(area.name, DELETED_FILE_SUFFIX)) (area.name);
area 284 plugin/ipc/file/fileconnlist.cpp if (Util::strStartsWith(area.name, DEV_ZERO_DELETED_STR) ||
area 285 plugin/ipc/file/fileconnlist.cpp Util::strStartsWith(area.name, DEV_NULL_DELETED_STR)) {
area 286 plugin/ipc/file/fileconnlist.cpp JWARNING(false) (area.name)
area 289 plugin/ipc/file/fileconnlist.cpp JTRACE("Will recreate shm file on restart.") (area.name);
area 292 plugin/ipc/file/fileconnlist.cpp area.name[strlen(area.name) - strlen(DELETED_FILE_SUFFIX)] = '\0';
area 293 plugin/ipc/file/fileconnlist.cpp unlinkedShmAreas.push_back(area);
area 300 plugin/ipc/file/fileconnlist.cpp void FileConnList::recreateShmFileAndMap(const ProcMapsArea& area)
area 304 plugin/ipc/file/fileconnlist.cpp string filename = Util::removeSuffix(area.name, DELETED_FILE_SUFFIX);
area 305 plugin/ipc/file/fileconnlist.cpp JASSERT(Util::createDirectoryTree(area.name)) (area.name)
area 316 plugin/ipc/file/fileconnlist.cpp int fd = _real_open(area.name, O_CREAT | O_EXCL | O_RDWR,
area 318 plugin/ipc/file/fileconnlist.cpp JASSERT(fd != -1 || errno == EEXIST) (area.name);
area 321 plugin/ipc/file/fileconnlist.cpp fd = _real_open(area.name, O_RDWR);
area 326 plugin/ipc/file/fileconnlist.cpp JASSERT(lseek(fd, area.offset, SEEK_SET) == area.offset) (JASSERT_ERRNO);
area 328 plugin/ipc/file/fileconnlist.cpp JASSERT(Util::writeAll(fd, area.addr, area.size) == (ssize_t)area.size)
area 330 plugin/ipc/file/fileconnlist.cpp restoreShmArea(area, fd);
area 333 plugin/ipc/file/fileconnlist.cpp void FileConnList::restoreShmArea(const ProcMapsArea& area, int fd)
area 336 plugin/ipc/file/fileconnlist.cpp fd = _real_open(area.name, Util::memProtToOpenFlags(area.prot));
area 339 plugin/ipc/file/fileconnlist.cpp JASSERT(fd != -1) (area.name) (JASSERT_ERRNO);
area 341 plugin/ipc/file/fileconnlist.cpp JTRACE("Restoring shared memory area") (area.name) ((void*)area.addr);
area 342 plugin/ipc/file/fileconnlist.cpp void *addr = _real_mmap(area.addr, area.size, area.prot,
area 343 plugin/ipc/file/fileconnlist.cpp MAP_FIXED | area.flags, fd, area.offset);
area 344 plugin/ipc/file/fileconnlist.cpp JASSERT(addr != MAP_FAILED) (area.flags) (area.prot) (JASSERT_ERRNO)
area 352 plugin/ipc/file/fileconnlist.cpp ProcMapsArea *area = &shmAreas[i];
area 355 plugin/ipc/file/fileconnlist.cpp JTRACE("Restoring shared memory area") (area->name) ((void*)area->addr);
area 356 plugin/ipc/file/fileconnlist.cpp void *addr = _real_mmap(area->addr, area->size, area->prot,
area 357 plugin/ipc/file/fileconnlist.cpp MAP_FIXED | area->flags,
area 358 plugin/ipc/file/fileconnlist.cpp fd, area->offset);
area 359 plugin/ipc/file/fileconnlist.cpp JASSERT(addr != MAP_FAILED) (area->flags) (area->prot) (JASSERT_ERRNO) .Text("mmap failed");
area 63 plugin/ipc/file/fileconnlist.h void recreateShmFileAndMap(const ProcMapsArea& area);
area 64 plugin/ipc/file/fileconnlist.h void restoreShmArea(const ProcMapsArea& area, int fd = -1);
area 164 processinfo.cpp ProcMapsArea area;
area 169 processinfo.cpp while (procSelfMaps.getNextArea(&area)) {
area 170 processinfo.cpp if (strcmp(area.name, "[heap]") == 0) {
area 172 processinfo.cpp _savedHeapStart = (unsigned long) area.addr;
area 173 processinfo.cpp } else if (strcmp(area.name, "[vdso]") == 0) {
area 174 processinfo.cpp _vdsoStart = (unsigned long) area.addr;
area 175 processinfo.cpp _vdsoEnd = (unsigned long) area.endAddr;
area 176 processinfo.cpp } else if (strcmp(area.name, "[vvar]") == 0) {
area 177 processinfo.cpp _vvarStart = (unsigned long) area.addr;
area 178 processinfo.cpp _vvarEnd = (unsigned long) area.endAddr;
area 179 processinfo.cpp } else if ((VA) &area >= area.addr && (VA) &area < area.endAddr) {
area 180 processinfo.cpp JTRACE("Original stack area") ((void*)area.addr) (area.size);
area 181 processinfo.cpp stackArea = area;
area 195 processinfo.cpp int ret = mprotect(area.addr + area.size, 0x1000,
area 216 processinfo.cpp while (maps.getNextArea(&area)) {
area 217 processinfo.cpp if ((VA)&area >= area.addr && (VA)&area < area.endAddr) { // Stack found
area 218 processinfo.cpp JTRACE("New stack size") ((void*)area.addr) (area.size);
area 128 procselfmaps.cpp int ProcSelfMaps::getNextArea(ProcMapsArea* area)
area 136 procselfmaps.cpp area->addr = (VA) readHex();
area 137 procselfmaps.cpp JASSERT(area->addr != NULL);
area 141 procselfmaps.cpp area->endAddr = (VA) readHex();
area 142 procselfmaps.cpp JASSERT(area->endAddr != NULL);
area 146 procselfmaps.cpp JASSERT(area->endAddr >= area->addr);
area 147 procselfmaps.cpp area->size = area->endAddr - area->addr;
area 163 procselfmaps.cpp area->offset = readHex();
area 166 procselfmaps.cpp area->devmajor = readHex();
area 169 procselfmaps.cpp area->devminor = readHex();
area 172 procselfmaps.cpp area->inodenum = readDec();
area 178 procselfmaps.cpp area -> name[0] = '\0';
area 185 procselfmaps.cpp area->name[i++] = data[dataIdx++];
area 186 procselfmaps.cpp JASSERT(i < sizeof(area->name));
area 188 procselfmaps.cpp area -> name[i] = '\0';
area 193 procselfmaps.cpp area -> prot = 0;
area 195 procselfmaps.cpp area -> prot |= PROT_READ;
area 198 procselfmaps.cpp area -> prot |= PROT_WRITE;
area 201 procselfmaps.cpp area -> prot |= PROT_EXEC;
area 204 procselfmaps.cpp area -> flags = MAP_FIXED;
area 206 procselfmaps.cpp area -> flags |= MAP_SHARED;
area 209 procselfmaps.cpp area -> flags |= MAP_PRIVATE;
area 211 procselfmaps.cpp if (area -> name[0] == '\0') {
area 212 procselfmaps.cpp area -> flags |= MAP_ANONYMOUS;
area 418 util_misc.cpp int Util::readProcMapsLine(int mapsfd, ProcMapsArea *area)
area 449 util_misc.cpp area -> offset = offset;
area 456 util_misc.cpp area -> name[0] = '\0';
area 464 util_misc.cpp area -> name[i++] = c;
area 465 util_misc.cpp if (i == sizeof area -> name) goto skipeol;
area 468 util_misc.cpp area -> name[i] = '\0';
area 473 util_misc.cpp area -> addr = startaddr;
area 474 util_misc.cpp area -> size = endaddr - startaddr;
area 475 util_misc.cpp area -> endAddr = endaddr;
area 476 util_misc.cpp area -> prot = 0;
area 477 util_misc.cpp if (rflag == 'r') area -> prot |= PROT_READ;
area 478 util_misc.cpp if (wflag == 'w') area -> prot |= PROT_WRITE;
area 479 util_misc.cpp if (xflag == 'x') area -> prot |= PROT_EXEC;
area 480 util_misc.cpp area -> flags = MAP_FIXED;
area 481 util_misc.cpp if (sflag == 's') area -> flags |= MAP_SHARED;
area 482 util_misc.cpp if (sflag == 'p') area -> flags |= MAP_PRIVATE;
area 483 util_misc.cpp if (area -> name[0] == '\0') area -> flags |= MAP_ANONYMOUS;
area 485 util_misc.cpp area->devmajor = devmajor;
area 486 util_misc.cpp area->devminor = devminor;
area 487 util_misc.cpp area->inodenum = inodenum;
area 631 util_misc.cpp bool Util::isNscdArea(const ProcMapsArea& area)
area 633 util_misc.cpp if (strStartsWith(area.name, "/run/nscd") || // OpenSUSE (newer)
area 634 util_misc.cpp strStartsWith(area.name, "/var/run/nscd") || // OpenSUSE (older)
area 635 util_misc.cpp strStartsWith(area.name, "/var/cache/nscd") || // Debian/Ubuntu
area 636 util_misc.cpp strStartsWith(area.name, "/var/db/nscd")) { // RedHat/Fedora
area 643 util_misc.cpp bool Util::isSysVShmArea(const ProcMapsArea& area)
area 645 util_misc.cpp return strStartsWith(area.name, "/SYSV");
area 649 util_misc.cpp bool Util::isIBShmArea(const ProcMapsArea& area)
area 651 util_misc.cpp return strStartsWith(area.name, "/dev/infiniband/uverbs");
area 63 writeckpt.cpp static void writememoryarea (int fd, Area *area,
area 81 writeckpt.cpp Area area;
area 108 writeckpt.cpp while (procSelfMaps.getNextArea(&area)) {
area 109 writeckpt.cpp if (Util::isNscdArea(area)) {
area 115 writeckpt.cpp (area.name);
area 117 writeckpt.cpp nscdAreas->push_back(area);
area 130 writeckpt.cpp while (procSelfMaps->getNextArea(&area)) {
area 136 writeckpt.cpp if ((uint64_t)area.addr == ProcessInfo::instance().restoreBufAddr()) {
area 137 writeckpt.cpp JASSERT(area.size == ProcessInfo::instance().restoreBufLen())
area 138 writeckpt.cpp ((void*) area.addr) (area.size) (ProcessInfo::instance().restoreBufLen());
area 154 writeckpt.cpp if (area.addr >= HIGHEST_VA && area.addr == (VA)0xffffe000)
area 160 writeckpt.cpp if (area.addr >= HIGHEST_VA && area.addr == (VA)0xffffffffff600000)
area 191 writeckpt.cpp if (!((area.prot & PROT_READ) || (area.prot & PROT_WRITE)) &&
area 192 writeckpt.cpp area.name[0] != '\0') {
area 196 writeckpt.cpp if (Util::strStartsWith(area.name, DEV_ZERO_DELETED_STR) ||
area 197 writeckpt.cpp Util::strStartsWith(area.name, DEV_NULL_DELETED_STR)) {
area 209 writeckpt.cpp JTRACE("saving area as Anonymous") (area.name);
area 210 writeckpt.cpp area.flags = MAP_PRIVATE | MAP_ANONYMOUS;
area 211 writeckpt.cpp area.name[0] = '\0';
area 212 writeckpt.cpp } else if (Util::isSysVShmArea(area)) {
area 213 writeckpt.cpp JTRACE("saving area as Anonymous") (area.name);
area 214 writeckpt.cpp area.flags = MAP_PRIVATE | MAP_ANONYMOUS;
area 215 writeckpt.cpp area.name[0] = '\0';
area 216 writeckpt.cpp } else if (Util::isNscdArea(area)) {
area 218 writeckpt.cpp area.prot = PROT_READ | PROT_WRITE | MTCP_PROT_ZERO_PAGE;
area 219 writeckpt.cpp area.flags = MAP_PRIVATE | MAP_ANONYMOUS;
area 220 writeckpt.cpp Util::writeAll(fd, &area, sizeof(area));
area 222 writeckpt.cpp } else if (Util::isIBShmArea(area)) {
area 225 writeckpt.cpp } else if (Util::strEndsWith(area.name, DELETED_FILE_SUFFIX)) {
area 227 writeckpt.cpp } else if (area.name[0] == '/' && strstr(&area.name[1], "/") != NULL) {
area 241 writeckpt.cpp if ((area.flags & MAP_PRIVATE) /*&& (area.prot & PROT_WRITE)*/) {
area 242 writeckpt.cpp area.flags |= MAP_ANONYMOUS;
area 250 writeckpt.cpp if (strstr (area.name, "[stack]"))
area 253 writeckpt.cpp writememoryarea(fd, &area, stack_was_seen);
area 263 writeckpt.cpp area.addr = NULL; // End of data
area 264 writeckpt.cpp area.size = -1; // End of data
area 265 writeckpt.cpp Util::writeAll(fd, &area, sizeof(area));
area 288 writeckpt.cpp static void mtcp_get_next_page_range(Area *area, size_t *size, int *is_zero)
area 294 writeckpt.cpp if (area->size < one_MB) {
area 295 writeckpt.cpp *size = area->size;
area 300 writeckpt.cpp *is_zero = Util::areZeroPages(area->addr, one_MB / MTCP_PAGE_SIZE);
area 301 writeckpt.cpp prevAddr = area->addr;
area 302 writeckpt.cpp for (pg = area->addr + one_MB;
area 303 writeckpt.cpp pg < area->addr + area->size;
area 305 writeckpt.cpp size_t minsize = MIN(one_MB, (size_t)(area->addr + area->size - pg));
area 311 writeckpt.cpp if (madvise(prevAddr, area->addr + *size - prevAddr,
area 314 writeckpt.cpp (JASSERT_ERRNO) ((void*)area->addr) ((int)*size);
area 323 writeckpt.cpp Area area = *orig_area;
area 344 writeckpt.cpp while (area.size > 0) {
area 347 writeckpt.cpp Area a = area;
area 349 writeckpt.cpp size = area.size;
area 367 writeckpt.cpp area.addr += size;
area 368 writeckpt.cpp area.size -= size;
area 380 writeckpt.cpp static void writememoryarea (int fd, Area *area, int stack_was_seen)
area 382 writeckpt.cpp void *addr = area->addr;
area 384 writeckpt.cpp if (!(area -> flags & MAP_ANONYMOUS))
area 385 writeckpt.cpp JTRACE("save region") (addr) (area->size) (area->name) (area->offset);
area 386 writeckpt.cpp else if (area -> name[0] == '\0')
area 387 writeckpt.cpp JTRACE("save anonymous") (addr) (area->size);
area 389 writeckpt.cpp JTRACE("save anonymous") (addr) (area->size) (area->name) (area->offset);
area 391 writeckpt.cpp if ((area -> name[0]) == '\0') {
area 393 writeckpt.cpp if (brk > area -> addr && brk <= area -> addr + area -> size)
area 394 writeckpt.cpp strcpy(area -> name, "[heap]");
area 397 writeckpt.cpp if (area->size == 0) {
area 400 writeckpt.cpp (addr) (area->size);
area 401 writeckpt.cpp } else if (0 == strcmp(area -> name, "[vsyscall]") ||
area 402 writeckpt.cpp 0 == strcmp(area -> name, "[vectors]") ||
area 403 writeckpt.cpp 0 == strcmp(area -> name, "[vvar]") ||
area 404 writeckpt.cpp 0 == strcmp(area -> name, "[vdso]")) {
area 406 writeckpt.cpp (area->name) (addr) (area->size);
area 407 writeckpt.cpp } else if (area->prot == 0 ||
area 408 writeckpt.cpp (area->name[0] == '\0' &&
area 409 writeckpt.cpp ((area->flags & MAP_ANONYMOUS) != 0) &&
area 410 writeckpt.cpp ((area->flags & MAP_PRIVATE) != 0))) {
area 415 writeckpt.cpp mtcp_write_non_rwx_and_anonymous_pages(fd, area);
area 422 writeckpt.cpp JASSERT((area->flags & MAP_ANONYMOUS) || (area->flags & MAP_SHARED));
area 423 writeckpt.cpp Util::writeAll(fd, area, sizeof(*area));
area 424 writeckpt.cpp Util::writeAll(fd, area->addr, area->size);