libptpmgmt  1.3
libptpmgmt library that provides the functionality of linuxptp pmc
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 #include "name.h"
16 #ifdef __PTPMGMT_HAVE_SYS_TYPES_H
17 #include <sys/types.h>
18 #else
20 typedef long ssize_t;
22 #endif /* __PTPMGMT_HAVE_SYS_TYPES_H */
23 #include "c/cfg.h"
24 #include "c/ptp.h"
25 
27 typedef struct ptpmgmt_sk_t *ptpmgmt_sk;
28 
30 typedef const struct ptpmgmt_sk_t *const_ptpmgmt_sk;
31 
36 struct ptpmgmt_sk_t {
38  void *_this;
45  void (*free)(ptpmgmt_sk sk);
46 
51  void (*close)(ptpmgmt_sk sk);
57  bool (*init)(ptpmgmt_sk sk);
67  bool (*send)(ptpmgmt_sk sk, const void *msg, size_t len);
78  ssize_t (*rcv)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
87  int (*getFd)(const_ptpmgmt_sk sk);
107  bool (*poll)(ptpmgmt_sk sk, uint64_t timeout_ms);
118  bool (*tpoll)(ptpmgmt_sk sk, uint64_t *timeout_ms);
124  const char *(*getPeerAddress)(const_ptpmgmt_sk sk);
137  bool (*setPeerAddress)(ptpmgmt_sk sk, const char *string);
146  bool (*setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string);
156  const char *section);
162  const char *(*getSelfAddress)(const_ptpmgmt_sk sk);
178  bool (*setSelfAddress)(ptpmgmt_sk sk, const char *string);
190  bool (*setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string);
201  bool (*setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase,
202  const char *useDef);
208  const char *(*getHomeDir)(ptpmgmt_sk sk);
219  bool (*sendTo)(ptpmgmt_sk sk, const void *msg, size_t len,
220  const char *addrStr);
233  bool (*sendToA)(ptpmgmt_sk sk, const void *msg, size_t len,
234  const char *addrStr);
249  ssize_t (*rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from,
250  size_t *fromSize, bool block);
262  ssize_t (*rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block);
271  const char *(*getLastFrom)(const_ptpmgmt_sk sk);
287  bool (*setIfUsingName)(ptpmgmt_sk sk, const char *ifName);
297  bool (*setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex);
322  const_ptpmgmt_cfg cfg, const char *section);
337  const_ptpmgmt_cfg cfg, const char *section);
348  bool (*setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl);
362  const char *section);
372  bool (*setScope)(ptpmgmt_sk sk, uint8_t udp6_scope);
385  const char *section);
397  bool (*setPtpDstMacStr)(ptpmgmt_sk sk, const char *string);
408  bool (*setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac,
409  size_t len);
422  const char *section);
434  bool (*setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority);
447  const char *section);
448 };
449 
454  ptpmgmt_SockUnix,
455  ptpmgmt_SockIp4,
456  ptpmgmt_SockIp6,
457  ptpmgmt_SockRaw,
458 };
459 
467 
468 #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)
struct ptpmgmt_sk_t * ptpmgmt_sk
Definition: sock.h:27
ptpmgmt_socket_class
Definition: sock.h:453
const struct ptpmgmt_sk_t * const_ptpmgmt_sk
Definition: sock.h:30
Define name space.
Definition: cfg.h:42
Definition: ptp.h:30
Definition: sock.h:36
bool(* setPeerAddress)(ptpmgmt_sk sk, const char *string)
Definition: sock.h:137
bool(* setPeerAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition: sock.h:146
bool(* setUdpTtlCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:361
int(* getFd)(const_ptpmgmt_sk sk)
Definition: sock.h:87
bool(* setPtpDstMac)(ptpmgmt_sk sk, const void *ptp_dst_mac, size_t len)
Definition: sock.h:408
bool(* isSelfAddressAbstract)(const_ptpmgmt_sk sk)
Definition: sock.h:168
bool(* setPtpDstMacCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:421
void(* close)(ptpmgmt_sk sk)
Definition: sock.h:51
bool(* sendToA)(ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition: sock.h:233
bool(* setSocketPriorityCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:446
bool(* setSelfAddress)(ptpmgmt_sk sk, const char *string)
Definition: sock.h:178
bool(* init)(ptpmgmt_sk sk)
Definition: sock.h:57
bool(* setIfUsingName)(ptpmgmt_sk sk, const char *ifName)
Definition: sock.h:287
bool(* setAll)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:321
bool(* setPeerAddressCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:155
ssize_t(* rcvFrom)(ptpmgmt_sk sk, void *buf, size_t bufSize, char *from, size_t *fromSize, bool block)
Definition: sock.h:249
bool(* setAllInit)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:336
bool(* isLastFromAbstract)(const_ptpmgmt_sk sk)
Definition: sock.h:277
bool(* setDefSelfAddress)(ptpmgmt_sk sk, const char *rootBase, const char *useDef)
Definition: sock.h:201
bool(* tpoll)(ptpmgmt_sk sk, uint64_t *timeout_ms)
Definition: sock.h:118
bool(* sendTo)(ptpmgmt_sk sk, const void *msg, size_t len, const char *addrStr)
Definition: sock.h:219
bool(* isPeerAddressAbstract)(const_ptpmgmt_sk sk)
Definition: sock.h:130
ssize_t(* rcv)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition: sock.h:78
bool(* setScope)(ptpmgmt_sk sk, uint8_t udp6_scope)
Definition: sock.h:372
bool(* setPtpDstMacStr)(ptpmgmt_sk sk, const char *string)
Definition: sock.h:397
bool(* setScopeCfg)(ptpmgmt_sk sk, const_ptpmgmt_cfg cfg, const char *section)
Definition: sock.h:384
bool(* setIf)(ptpmgmt_sk sk, const_ptpmgmt_ifInfo ifObj)
Definition: sock.h:307
int(* fileno)(const_ptpmgmt_sk sk)
Definition: sock.h:96
bool(* setUdpTtl)(ptpmgmt_sk sk, uint8_t udp_ttl)
Definition: sock.h:348
bool(* send)(ptpmgmt_sk sk, const void *msg, size_t len)
Definition: sock.h:67
bool(* setSelfAddressAbstract)(ptpmgmt_sk sk, const char *string)
Definition: sock.h:190
bool(* setSocketPriority)(ptpmgmt_sk sk, uint8_t socket_priority)
Definition: sock.h:434
void(* free)(ptpmgmt_sk sk)
Definition: sock.h:45
bool(* poll)(ptpmgmt_sk sk, uint64_t timeout_ms)
Definition: sock.h:107
bool(* setIfUsingIndex)(ptpmgmt_sk sk, int ifIndex)
Definition: sock.h:297
ssize_t(* rcvFromA)(ptpmgmt_sk sk, void *buf, size_t bufSize, bool block)
Definition: sock.h:262