forked from ESMCI/mpi-serial
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathio.c
78 lines (67 loc) · 2.21 KB
/
io.c
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
73
74
75
76
77
78
#include "mpiP.h"
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
static int mode(int amode) {
return amode;
}
static int errno2ret() {
return MPI_ERR_IO;
}
int MPI_File_open(MPI_Comm comm, const char *filename,
int amode, MPI_Info info,
MPI_File *fh)
{
if (comm == MPI_COMM_NULL)
return MPI_ERR_COMM;
int fd = open(filename, mode(amode));
if (fd < 0) {
return errno2ret();
}
*fh = fd;
return MPI_SUCCESS;
}
int MPI_File_close(MPI_File * fh)
{
int fd = *fh;
int err = close(fd);
if (err == -1) {
return errno2ret();
}
return MPI_SUCCESS;
}
int MPI_File_get_size(MPI_File fh, MPI_Offset *size);
int MPI_File_set_size(MPI_File fh, MPI_Offset size);
int MPI_File_write(MPI_File fh, const void *buf, int count,
MPI_Datatype datatype, MPI_Status *status)
{
abort();
return MPI_SUCCESS;
}
int MPI_File_write_at(MPI_File fh, MPI_Offset offset, const void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
int MPI_File_write_all(MPI_File fh, const void *buf, int count,
MPI_Datatype datatype, MPI_Status * status)
{
abort();
return MPI_SUCCESS;
}
int MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
int MPI_File_read(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, MPI_Status *status);
int MPI_File_read_all(MPI_File fh, void *buf, int count,
MPI_Datatype datatype, MPI_Status *status);
int MPI_File_read_at(MPI_File fh, MPI_Offset offset, void *buf,
int count, MPI_Datatype datatype, MPI_Status * status);
extern int MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
int count, MPI_Datatype datatype, MPI_Status *status);
int MPI_File_read_at_all(MPI_File fh, MPI_Offset offset, void *buf,
int count, MPI_Datatype datatype, MPI_Status * status);
int MPI_File_set_view(MPI_File fh, MPI_Offset disp,
MPI_Datatype etype, MPI_Datatype filetype,
const char *datarep, MPI_Info info)
{
abort();
return MPI_SUCCESS;
}