File: Statvfs.xs

package info (click to toggle)
libfilesys-statvfs-perl 0.82-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 76 kB
  • sloc: perl: 52; makefile: 2
file content (72 lines) | stat: -rw-r--r-- 1,772 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <sys/statvfs.h>
#ifdef __cplusplus
}
#endif

typedef struct statvfs Statvfs;


MODULE = Filesys::Statvfs	PACKAGE = Filesys::Statvfs


void
statvfs(dir)
	char *dir
	PREINIT:
	Statvfs st;
	PPCODE:
	EXTEND(sp, 10);
	if(statvfs(dir, &st) == 0) {
		/* Push values as doubles because we don't know size */
		PUSHs(sv_2mortal(newSVnv((double)st.f_bsize)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_frsize)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_blocks)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_bfree)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_bavail)));

		PUSHs(sv_2mortal(newSVnv((double)st.f_files)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_ffree)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_favail)));
	
                PUSHs(sv_2mortal(newSVnv((double)st.f_flag)));
                PUSHs(sv_2mortal(newSVnv((double)st.f_namemax)));

	}

	else {
		/* undef */
	}

void
fstatvfs(fd)
	int fd;
	PREINIT:
	Statvfs st;
	PPCODE:
	EXTEND(sp, 10);
	if(fstatvfs(fd, &st) == 0) {
		/* Push values as doubles because we don't know size */
		PUSHs(sv_2mortal(newSVnv((double)st.f_bsize)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_frsize)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_blocks)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_bfree)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_bavail)));

		PUSHs(sv_2mortal(newSVnv((double)st.f_files)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_ffree)));
		PUSHs(sv_2mortal(newSVnv((double)st.f_favail)));

                PUSHs(sv_2mortal(newSVnv((double)st.f_flag)));
                PUSHs(sv_2mortal(newSVnv((double)st.f_namemax)));
	}

	else {
		/* undef */
	}