#include "mph.h"
-#ifdef HAVE_FSTAB_H
+#if defined (HAVE_CHECKLIST_H)
+#include <checklist.h>
+#elif defined (HAVE_FSTAB_H)
#include <fstab.h>
#endif /* def HAVE_FSTAB_H */
char *_fs_buf_;
};
-#ifdef HAVE_FSTAB_H
+#ifdef HAVE_CHECKLIST_H
+
+typedef struct checklist mph_fstab;
+
+static const size_t
+fstab_offsets[] = {
+ offsetof (struct checklist, fs_spec),
+ offsetof (struct checklist, fs_dir),
+ offsetof (struct checklist, fs_type)
+};
+
+static const size_t
+mph_fstab_offsets[] = {
+ offsetof (struct Mono_Posix_Syscall__Fstab, fs_spec),
+ offsetof (struct Mono_Posix_Syscall__Fstab, fs_file),
+ offsetof (struct Mono_Posix_Syscall__Fstab, fs_type)
+};
+
+#elif defined (HAVE_FSTAB_H)
typedef struct fstab mph_fstab;
offsetof (struct Mono_Posix_Syscall__Fstab, fs_type)
};
+#endif /* def HAVE_FSTAB_H */
+
+#if defined (HAVE_CHECKLIST_H) || defined (HAVE_FSTAB_H)
+
/*
* Copy the native `fstab' structure to it's managed representation.
*
* memory block (stored in _fs_buf_).
*/
static int
-copy_fstab (struct Mono_Posix_Syscall__Fstab *to, struct fstab *from)
+copy_fstab (struct Mono_Posix_Syscall__Fstab *to, mph_fstab *from)
{
char *buf;
+
+ memset (to, 0, sizeof(*to));
+
buf = _mph_copy_structure_strings (to, mph_fstab_offsets,
from, fstab_offsets, sizeof(fstab_offsets)/sizeof(fstab_offsets[0]));
return 0;
}
-#endif /* def HAVE_FSTAB_H */
+#endif /* def HAVE_CHECKLIST_H || def HAVE_FSTAB_H */
#ifdef HAVE_SYS_VFSTAB_H
copy_fstab (struct Mono_Posix_Syscall__Fstab *to, struct vfstab *from)
{
char *buf;
+
+ memset (to, 0, sizeof(*to));
+
buf = _mph_copy_structure_strings (to, mph_fstab_offsets,
from, vfstab_offsets, sizeof(vfstab_offsets)/sizeof(vfstab_offsets[0]));
#endif /* def HAVE_SYS_VFSTAB_H */
-#if defined (HAVE_FSTAB_H) || defined (HAVE_SYS_VFSTAB_H)
+#if defined (HAVE_FSTAB_H) || defined (HAVE_CHECKPOINT_H) || defined (HAVE_SYS_VFSTAB_H)
void
Mono_Posix_Syscall_endfsent (void)
return setfsent ();
}
-#endif /* def HAVE_FSTAB_H || def HAVE_SYS_VFSTAB_H */
+#endif /* def HAVE_FSTAB_H || def HAVE_CHECKPOINT_H || def HAVE_SYS_VFSTAB_H */
G_END_DECLS