Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add C interface to disks
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 6 Feb 2020 15:59:07 +0000 (16:59 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 6 Feb 2020 16:00:24 +0000 (17:00 +0100)
include/simgrid/disk.h [new file with mode: 0644]
include/simgrid/s4u/Disk.hpp
src/s4u/s4u_Disk.cpp
tools/cmake/DefinePackages.cmake

diff --git a/include/simgrid/disk.h b/include/simgrid/disk.h
new file mode 100644 (file)
index 0000000..98e073e
--- /dev/null
@@ -0,0 +1,23 @@
+/* Copyright (c) 2020. The SimGrid Team. All rights reserved.          */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#ifndef INCLUDE_SIMGRID_DISK_H_
+#define INCLUDE_SIMGRID_DISK_H_
+
+#include <simgrid/forward.h>
+#include <xbt/base.h>
+
+/* C interface */
+SG_BEGIN_DECL
+XBT_PUBLIC const char* sg_disk_name(const_sg_disk_t disk);
+XBT_PUBLIC double sg_disk_read_bandwidth(const_sg_disk_t disk);
+XBT_PUBLIC double sg_disk_write_bandwidth(const_sg_disk_t disk);
+XBT_PUBLIC sg_size_t sg_disk_write(sg_disk_t disk, sg_size_t size);
+XBT_PUBLIC sg_size_t sg_disk_read(sg_disk_t disk, sg_size_t size);
+XBT_PUBLIC void* sg_disk_data(const_sg_disk_t disk);
+XBT_PUBLIC void sg_disk_data_set(sg_disk_t disk, void* data);
+SG_END_DECL
+
+#endif /* INCLUDE_SIMGRID_DISK_H_ */
index 1f92ec5..9a01b2c 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef INCLUDE_SIMGRID_S4U_DISK_HPP_
 #define INCLUDE_SIMGRID_S4U_DISK_HPP_
 
+#include <simgrid/disk.h>
 #include <simgrid/forward.h>
 #include <simgrid/s4u/Io.hpp>
 #include <xbt/Extendable.hpp>
index 684cbab..f558aa8 100644 (file)
@@ -76,3 +76,37 @@ sg_size_t Disk::write(sg_size_t size)
 
 } // namespace s4u
 } // namespace simgrid
+
+/* **************************** Public C interface *************************** */
+
+const char* sg_disk_name(const_sg_disk_t disk)
+{
+  return disk->get_cname();
+}
+
+double sg_disk_read_bandwidth(const_sg_disk_t disk)
+{
+  return disk->get_read_bandwidth();
+}
+
+double sg_disk_write_bandwidth(const_sg_disk_t disk)
+{
+  return disk->get_write_bandwidth();
+}
+
+sg_size_t sg_disk_read(sg_disk_t disk, sg_size_t size)
+{
+  return disk->read(size);
+}
+sg_size_t sg_disk_write(sg_disk_t disk, sg_size_t size)
+{
+  return disk->write(size);
+}
+void* sg_disk_data(const_sg_disk_t disk)
+{
+  return disk->get_data();
+}
+void sg_disk_data_set(sg_disk_t disk, void* data)
+{
+  disk->set_data(data);
+}
index b5f5345..170ab3f 100644 (file)
@@ -699,6 +699,7 @@ set(headers_to_install
   include/simgrid/simix.hpp
   include/simgrid/simix/blocking_simcall.hpp
   include/simgrid/kernel/future.hpp
+  include/simgrid/disk.h
   include/simgrid/host.h
   include/simgrid/link.h
   include/simgrid/cond.h