5 # include <linux/time.h>
6 # include <asm/types.h>
7 # include <asm/timex.h>
8 #else /* !__KERNEL__ */
9 # include <sys/types.h>
10 # include <sys/time.h>
11 typedef u_int32_t __u32;
12 typedef u_int64_t __u64;
13 # define do_gettimeofday(tv) gettimeofday(tv, NULL)
15 typedef unsigned long cycles_t;
17 #endif /* !__KERNEL__ */
19 #include <portals/errno.h>
21 typedef __u64 ptl_nid_t;
22 typedef __u32 ptl_pid_t;
23 typedef __u32 ptl_pt_index_t;
24 typedef __u32 ptl_ac_index_t;
25 typedef __u64 ptl_match_bits_t;
26 typedef __u64 ptl_hdr_data_t;
27 typedef __u32 ptl_size_t;
30 unsigned long nal_idx; /* which network interface */
31 __u64 cookie; /* which thing on that interface */
34 typedef ptl_handle_any_t ptl_handle_ni_t;
35 typedef ptl_handle_any_t ptl_handle_eq_t;
36 typedef ptl_handle_any_t ptl_handle_md_t;
37 typedef ptl_handle_any_t ptl_handle_me_t;
39 #define PTL_HANDLE_NONE \
40 ((const ptl_handle_any_t){.nal_idx = -1, .cookie = -1})
41 #define PTL_EQ_NONE PTL_HANDLE_NONE
43 static inline int PtlHandleEqual (ptl_handle_any_t h1, ptl_handle_any_t h2)
45 return (h1.nal_idx == h2.nal_idx && h1.cookie == h2.cookie);
48 #define PTL_NID_ANY ((ptl_nid_t) -1)
49 #define PTL_PID_ANY ((ptl_pid_t) -1)
53 ptl_pid_t pid; /* node id / process id */
67 struct page *kiov_page;
68 unsigned int kiov_len;
69 unsigned int kiov_offset;
79 ptl_handle_eq_t eventq;
83 /* Options for the MD structure */
84 #define PTL_MD_OP_PUT (1 << 0)
85 #define PTL_MD_OP_GET (1 << 1)
86 #define PTL_MD_MANAGE_REMOTE (1 << 2)
87 #define PTL_MD_AUTO_UNLINK (1 << 3)
88 #define PTL_MD_TRUNCATE (1 << 4)
89 #define PTL_MD_ACK_DISABLE (1 << 5)
90 #define PTL_MD_IOV (1 << 6)
91 #define PTL_MD_MAX_SIZE (1 << 7)
92 #define PTL_MD_KIOV (1 << 8)
94 #define PTL_MD_THRESH_INF (-1)
105 #define PTL_SEQ_BASETYPE long
106 typedef unsigned PTL_SEQ_BASETYPE ptl_seq_t;
107 #define PTL_SEQ_GT(a,b) (((signed PTL_SEQ_BASETYPE)((a) - (b))) > 0)
110 * cygwin need the pragma line, not clear if it's needed in other places.
114 #pragma pack(push, 4)
117 ptl_event_kind_t type;
120 ptl_process_id_t initiator;
121 ptl_pt_index_t portal;
122 ptl_match_bits_t match_bits;
127 ptl_hdr_data_t hdr_data;
128 struct timeval arrival_time;
130 volatile ptl_seq_t sequence;
131 } __attribute__((packed)) ptl_event_t;
142 volatile ptl_seq_t sequence;
145 ptl_handle_any_t cb_eq_handle;
153 int max_match_entries; /* max number of match entries */
154 int max_mem_descriptors; /* max number of memory descriptors */
155 int max_event_queues; /* max number of event queues */
156 int max_atable_index; /* maximum access control list table index */
157 int max_ptable_index; /* maximum portals table index */
173 typedef int ptl_sr_value_t;