NewMadeleine

Documentation

« back to PM2 home.
nm_private.h
Go to the documentation of this file.
1/*
2 * NewMadeleine
3 * Copyright (C) 2006-2025 (see AUTHORS file)
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or (at
8 * your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15
16
17#ifndef NM_PRIVATE_H
18#define NM_PRIVATE_H
19
30#include "nm_private_config.h"
31
32#ifndef NMAD_BUILD
33# error "NMAD_BUILD flag not set while including nm_private.h. This header is not part of API and cannot be used outside of nmad."
34#endif /* NMAD_BUILD */
35
36
37/* ** external headers */
38
39#include <Padico/Puk.h>
40#include <Padico/Module.h>
41
42#ifdef PIOMAN
43#include <pioman.h>
44#endif
45
46#if defined(PUKABI)
47#include <Padico/Puk-ABI.h>
48#endif /* PUKABI */
49#if defined(PUKABI_ENABLE_FSYS)
50#define NM_SYS(SYMBOL) PUK_ABI_FSYS_WRAP(SYMBOL)
51#else /* PUKABI_ENABLE_FSYS */
52#define NM_SYS(SYMBOL) SYMBOL
53#endif /* PUKABI_ENABLE_FSYS */
54
55#ifdef NMAD_HWLOC
56#include <hwloc.h>
57#endif
58
59#ifdef NMAD_CUDA
60#include <cuda.h>
61#include <cuda_runtime.h>
62#include <cuda_runtime_api.h>
63#endif /* NMAD_CUDA */
64
65#ifdef NMAD_HIP
66#include <hip/hip_runtime.h>
67#include <hip/hip_runtime_api.h>
68#endif /* NMAD_HIP */
69
70
71/* ** nmad public headers */
72
73#include <nm_public.h>
74#include <nm_core_interface.h>
75#include <nm_parameters.h>
76
77
78/* ** nmad private headers */
79
80#include <nm_trace.h>
81#include <nm_core_types.h>
82#include <nm_tags.h>
83#include <nm_minidriver.h>
84#include <nm_headers.h>
85#include <nm_pkt_wrap.h>
86#include <nm_drv.h>
87#ifdef PIOMAN
88#include <nm_piom_ltasks.h>
89#endif
90#include <nm_strategy.h>
91#include <nm_gate.h>
92#include <nm_core.h>
93#include <nm_lock.h>
94#include <nm_core_private.h>
95#include <nm_core_inline.h>
96#include <nm_gpu.h>
97#include <nm_tactics.h>
98#include <nm_sampling.h>
99
100#endif /* NM_PRIVATE_H */
Definition for nmad core.
Inline functions for nmad core.
Private definitions for nmad core.
Private definitions for nmad core.
definition nm_drv-related data structures.
definition gates and gate-related data structures.
Functions dedicated to interactions with GPU.
Locking interface used in nm core.
Definition of the minidriver interface.
Pioman integration.
This is the internal interface for packet wrappers, bellow the scheduler.
This is the common public header for NewMad.
Tactics i.e.
Private definitions for managing tags and structures indexed by tags.
Definitions for traces.