From: Frederic Suter Date: Thu, 6 Feb 2020 15:59:07 +0000 (+0100) Subject: add C interface to disks X-Git-Tag: v3.26~1008 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ca4cb4ea923e4856691f88688189a7e6d0a27c98 add C interface to disks --- diff --git a/include/simgrid/disk.h b/include/simgrid/disk.h new file mode 100644 index 0000000000..98e073e11e --- /dev/null +++ b/include/simgrid/disk.h @@ -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 +#include + +/* 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_ */ diff --git a/include/simgrid/s4u/Disk.hpp b/include/simgrid/s4u/Disk.hpp index 1f92ec58e7..9a01b2cc60 100644 --- a/include/simgrid/s4u/Disk.hpp +++ b/include/simgrid/s4u/Disk.hpp @@ -6,6 +6,7 @@ #ifndef INCLUDE_SIMGRID_S4U_DISK_HPP_ #define INCLUDE_SIMGRID_S4U_DISK_HPP_ +#include #include #include #include diff --git a/src/s4u/s4u_Disk.cpp b/src/s4u/s4u_Disk.cpp index 684cbab8be..f558aa8d1e 100644 --- a/src/s4u/s4u_Disk.cpp +++ b/src/s4u/s4u_Disk.cpp @@ -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); +} diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index b5f5345436..170ab3f09f 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -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