aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorMichael Albinus2022-11-27 16:57:03 +0100
committerMichael Albinus2022-11-27 16:57:03 +0100
commit1cbf2655db40cd474411b77ece57a287eb85ea2c (patch)
tree51c1eb45d553033f76e7d36837cfbaa20778c7b2 /src/alloc.c
parentca42ff5f0ee757f0a70f603863c83e85eef683b9 (diff)
downloademacs-1cbf2655db40cd474411b77ece57a287eb85ea2c.tar.gz
emacs-1cbf2655db40cd474411b77ece57a287eb85ea2c.zip
Extend memory-info for remote systems
* doc/lispref/files.texi (Magic File Names): Add memory-info. * doc/lispref/internals.texi (Garbage Collection): memory-info can also retrieve values from remote systems. * etc/NEWS: Document changes in memory-info. Fix typos. * lisp/files.el (warn-maybe-out-of-memory): Ensure local memory info. * lisp/net/tramp.el (tramp-handle-memory-info): New defun. (tramp-file-name-for-operation) * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist) * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): Add 'memory-info'. * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-exec-path): Let-bind `process-file-side-effects'. * src/alloc.c (Fmemory_info): Support remote systems. (Qmemory_info): Declare. * test/lisp/net/tramp-tests.el (tramp-test31-memory-info): New test.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 0653f2e0ccc..980085d3292 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -7435,9 +7435,17 @@ DEFUN ("memory-info", Fmemory_info, Smemory_info, 0, 0, 0,
7435 doc: /* Return a list of (TOTAL-RAM FREE-RAM TOTAL-SWAP FREE-SWAP). 7435 doc: /* Return a list of (TOTAL-RAM FREE-RAM TOTAL-SWAP FREE-SWAP).
7436All values are in Kbytes. If there is no swap space, 7436All values are in Kbytes. If there is no swap space,
7437last two values are zero. If the system is not supported 7437last two values are zero. If the system is not supported
7438or memory information can't be obtained, return nil. */) 7438or memory information can't be obtained, return nil.
7439If `default-directory’ is remote, return memory information of the
7440respective remote host. */)
7439 (void) 7441 (void)
7440{ 7442{
7443 Lisp_Object handler
7444 = Ffind_file_name_handler (BVAR (current_buffer, directory),
7445 Qmemory_info);
7446 if (!NILP (handler))
7447 return call1 (handler, Qmemory_info);
7448
7441#if defined HAVE_LINUX_SYSINFO 7449#if defined HAVE_LINUX_SYSINFO
7442 struct sysinfo si; 7450 struct sysinfo si;
7443 uintmax_t units; 7451 uintmax_t units;
@@ -7859,6 +7867,8 @@ do hash-consing of the objects allocated to pure space. */);
7859 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */); 7867 doc: /* Non-nil means Emacs cannot get much more Lisp memory. */);
7860 Vmemory_full = Qnil; 7868 Vmemory_full = Qnil;
7861 7869
7870 DEFSYM (Qmemory_info, "memory-info");
7871
7862 DEFSYM (Qconses, "conses"); 7872 DEFSYM (Qconses, "conses");
7863 DEFSYM (Qsymbols, "symbols"); 7873 DEFSYM (Qsymbols, "symbols");
7864 DEFSYM (Qstrings, "strings"); 7874 DEFSYM (Qstrings, "strings");