/* 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. */
/* 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. */
using IoImplPtr = boost::intrusive_ptr<IoImpl>;
class MutexImpl;
using MutexImplPtr = boost::intrusive_ptr<MutexImpl>;
using IoImplPtr = boost::intrusive_ptr<IoImpl>;
class MutexImpl;
using MutexImplPtr = boost::intrusive_ptr<MutexImpl>;
XBT_PUBLIC void intrusive_ptr_add_ref(MutexImpl* mutex);
XBT_PUBLIC void intrusive_ptr_release(MutexImpl* mutex);
XBT_PUBLIC void intrusive_ptr_add_ref(MutexImpl* mutex);
XBT_PUBLIC void intrusive_ptr_release(MutexImpl* mutex);
XBT_PUBLIC void intrusive_ptr_add_ref(SemaphoreImpl* sem);
XBT_PUBLIC void intrusive_ptr_release(SemaphoreImpl* sem);
class SleepImpl;
XBT_PUBLIC void intrusive_ptr_add_ref(SemaphoreImpl* sem);
XBT_PUBLIC void intrusive_ptr_release(SemaphoreImpl* sem);
class SleepImpl;
using smx_mailbox_t = simgrid::kernel::activity::MailboxImpl*;
using smx_mutex_t = simgrid::kernel::activity::MutexImpl*;
using smx_sem_t = simgrid::kernel::activity::SemaphoreImpl*;
using smx_mailbox_t = simgrid::kernel::activity::MailboxImpl*;
using smx_mutex_t = simgrid::kernel::activity::MutexImpl*;
using smx_sem_t = simgrid::kernel::activity::SemaphoreImpl*;
typedef struct s4u_Disk s4u_Disk;
typedef struct s4u_NetZone s4u_NetZone;
typedef struct s4u_VM s4u_VM;
typedef struct s4u_Disk s4u_Disk;
typedef struct s4u_NetZone s4u_NetZone;
typedef struct s4u_VM s4u_VM;