libptpmgmt 2.0
libptpmgmt library that provides the functionality of linuxptp pmc
Loading...
Searching...
No Matches
sock.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-3.0-or-later
2 SPDX-FileCopyrightText: Copyright © 2023 Erez Geva <ErezGeva2@gmail.com> */
3
12#ifndef __PTPMGMT_C_SOCK_H
13#define __PTPMGMT_C_SOCK_H
14
15#ifdef __PTPMGMT_HAVE_SYS_TYPES_H
16#include <sys/types.h>
17#else
19typedef long ssize_t;
21#endif /* __PTPMGMT_HAVE_SYS_TYPES_H */
22#include "c/cfg.h"
23#include "c/ptp.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
30typedef struct ptpmgmt_sk_t *ptpmgmt_sk;
31
33typedef const struct ptpmgmt_sk_t *const_ptpmgmt_sk;
34
41 void *_this;
48 void (*free)(ptpmgmt_sk sk);
49
54 void (*close)(ptpmgmt_sk sk);
60 bool (*init)(ptpmgmt_sk sk);
70 bool (*send)(const_ptpmgmt_sk sk, const void *msg, size_t len);
81 ssize_t (*rcv)(const_ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
110 bool (*poll)(const_ptpmgmt_sk sk, uint64_t timeout_ms);
121 bool (*tpoll)(const_ptpmgmt_sk sk, uint64_t *timeout_ms);
127 const char *(*getPeerAddress)(const_ptpmgmt_sk sk);
140 bool (*setPeerAddress)(ptpmgmt_sk sk, const char *string);
149 bool (*setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string);
159 const char *section);
165 const char *(*getSelfAddress)(const_ptpmgmt_sk sk);
181 bool (*setSelfAddress)(ptpmgmt_sk sk, const char *string);
193 bool (*setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string);
204 bool (*setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase,
205 const char *useDef);
210 const char *(*getHomeDir)();
221 bool (*sendTo)(const_ptpmgmt_sk sk, const void *msg, size_t len,
222 const char *addrStr);
235 bool (*sendToA)(const_ptpmgmt_sk sk, const void *msg, size_t len,
236 const char *addrStr);
251 ssize_t (*rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from,
252 size_t *fromSize, bool block);
264 ssize_t (*rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
273 const char *(*getLastFrom)(const_ptpmgmt_sk sk);
289 bool (*setIfUsingName)(ptpmgmt_sk sk, const char *ifName);
299 bool (*setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex);
324 const_ptpmgmt_cfg cfg, const char *section);
339 const_ptpmgmt_cfg cfg, const char *section);
350 bool (*setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl);
364 const char *section);
374 bool (*setScope)(ptpmgmt_sk sk, uint8_t udp6_scope);
387 const char *section);
399 bool (*setPtpDstMacStr)(ptpmgmt_sk sk, const char *string);
410 bool (*setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac,
411 size_t len);
424 const char *section);
436 bool (*setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority);
449 const char *section);
450};
451
457
462 ptpmgmt_SockUnix,
463 ptpmgmt_SockIp4,
464 ptpmgmt_SockIp6,
465 ptpmgmt_SockRaw,
466};
467
475
476#ifdef __cplusplus
477}
478#endif
479
480#endif /* __PTPMGMT_C_SOCK_H */
C interface to configuration class.
C interface to network and PHC classes.
ptpmgmt_sk ptpmgmt_sk_alloc(enum ptpmgmt_socket_class type)
const char * ptpmgmt_sk_getHomeDir()
struct ptpmgmt_sk_t * ptpmgmt_sk
Definition sock.h:30
ptpmgmt_socket_class
Definition sock.h:461
const struct ptpmgmt_sk_t * const_ptpmgmt_sk
Definition sock.h:33
Definition cfg.h:43
Definition ptp.h:42
Definition sock.h:39
bool(* setPeerAddress)(ptpmgmt_sk sk, const char *string)
Definition sock.h:140
bool(* setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition sock.h:149
bool(* setUdpTtlCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:363
int(* getFd)(const_ptpmgmt_sk sk)
Definition sock.h:90
bool(* setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac, size_t len)
Definition sock.h:410
bool(* isSelfAddressAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:171
bool(* setPtpDstMacCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:423
void(* close)(ptpmgmt_sk sk)
Definition sock.h:54
bool(* setSocketPriorityCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:448
bool(* setSelfAddress)(ptpmgmt_sk sk, const char *string)
Definition sock.h:181
bool(* init)(ptpmgmt_sk sk)
Definition sock.h:60
bool(* setIfUsingName)(ptpmgmt_sk sk, const char *ifName)
Definition sock.h:289
bool(* setAll)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:323
bool(* setPeerAddressCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:158
ssize_t(* rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from, size_t *fromSize, bool block)
Definition sock.h:251
bool(* setAllInit)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:338
bool(* isLastFromAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:279
bool(* send)(const_ptpmgmt_sk sk, const void *msg, size_t len)
Definition sock.h:70
bool(* setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase, const char *useDef)
Definition sock.h:204
bool(* sendTo)(const_ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition sock.h:221
bool(* isPeerAddressAbstract)(const_ptpmgmt_sk sk)
Definition sock.h:133
bool(* tpoll)(const_ptpmgmt_sk sk, uint64_t *timeout_ms)
Definition sock.h:121
bool(* sendToA)(const_ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition sock.h:235
ssize_t(* rcv)(const_ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition sock.h:81
bool(* setScope)(ptpmgmt_sk sk, uint8_t udp6_scope)
Definition sock.h:374
bool(* setPtpDstMacStr)(ptpmgmt_sk sk, const char *string)
Definition sock.h:399
bool(* setScopeCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition sock.h:386
bool(* poll)(const_ptpmgmt_sk sk, uint64_t timeout_ms)
Definition sock.h:110
bool(* setIf)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj)
Definition sock.h:309
int(* fileno)(const_ptpmgmt_sk sk)
Definition sock.h:99
bool(* setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl)
Definition sock.h:350
bool(* setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition sock.h:193
bool(* setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority)
Definition sock.h:436
void(* free)(ptpmgmt_sk sk)
Definition sock.h:48
bool(* setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex)
Definition sock.h:299
ssize_t(* rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition sock.h:264