1
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÁƒ,‡_†I|¥�+ÁÀ 3    /* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * include/net/dsa_stubs.h - Stubs for the Distributed Switch Architecture framework
 */

#include <linux/mutex.h>
#include <linux/netdevice.h>
#include <linux/net_tstamp.h>
#include <net/dsa.h>

#if IS_ENABLED(CONFIG_NET_DSA)

extern const struct dsa_stubs *dsa_stubs;

struct dsa_stubs {
	int (*master_hwtstamp_validate)(struct net_device *dev,
					const struct kernel_hwtstamp_config *config,
					struct netlink_ext_ack *extack);
};

static inline int dsa_master_hwtstamp_validate(struct net_device *dev,
					       const struct kernel_hwtstamp_config *config,
					       struct netlink_ext_ack *extack)
{
	if (!netdev_uses_dsa(dev))
		return 0;

	/* rtnl_lock() is a sufficient guarantee, because as long as
	 * netdev_uses_dsa() returns true, the dsa_core module is still
	 * registered, and so, dsa_unregister_stubs() couldn't have run.
	 * For netdev_uses_dsa() to start returning false, it would imply that
	 * dsa_master_teardown() has executed, which requires rtnl_lock().
	 */
	ASSERT_RTNL();

	return dsa_stubs->master_hwtstamp_validate(dev, config, extack);
}

#else

static inline int dsa_master_hwtstamp_validate(struct net_device *dev,
					       const struct kernel_hwtstamp_config *config,
					       struct netlink_ext_ack *extack)
{
	return 0;
}

#endif
  G   ˆl–ßi~”êh¥8 Eq–®	•1hßÃ960_ŒuÐb&=Ly[Ï¿a–Ým_J*j"Tâ‚Áãm)‹FÿÃ À    ý7zXZ  i"Þ6 !   t/å£à
j„] ˆæhó�s©™v'í™/�\Ñ�”œ®ÝT)§8„ÒdH´ìã½y[®FUŽc¾ç6­µiü ljÀ@UòFŠä1ü¾Oã­ðâAûŸí"…FÁè�­[(ÖZ`Q—’©qŠ$‡ÉHúÀÂòØFR‹”L¢@‹­“”hG-³6¬tª¤ûñf€�tÿAœzJ®ºˆµqîZqâSýšµå cb‡¦ä¿�¶k…»ác½/t_‚{møÐÈ0µ8B'æV»fi	ÝÂµ±Á,w¼{„”öŽ=—õ}"qLQ¤<Áýiþb2d}óxÈ\±£cÎ_'Èq�\_¬¢&—FZãZ³äÕõôÃÑÏƒ…¯«+‰'k'3Î%Ü‡^™ŸYUå;cO ýNX8¨Ÿ8¸"×2o^ç|õÀ63#§ÒÞ$�x_ÕÑÏ(8æÀ+œ&N:�Ñ@yjGSu:£ÍG†Á„{²Ö;ÕÑÀ¥·uí�Ñ9ñ‹Œƒ‚ã<U3“{�YW)úŠ¼Ÿ{Ð�Þ}8ÜIÉü¹~Ô�…&ÅÚ‡Pß¢¼ÕÚh‡ðmˆ¢Ó7z°lžê¨Ì¹lPW|¼Ê8Ì-ý?�d”¡¹Ê^S‰“YR~¸åºÔüÝÞ�ª¦èSÞ)÷¸në¤'�în›�h£FR›×ý§ŠEpQÌ‹Ž\|h|Qüo­CA‰ø¹*,JÁ½ `ì©äˆ±rÁO8�U8 ƒ4äËîc®c.%‘JªD%¤ÌÐL´Õ4ú7,²¾>/ö–ØØÔ­½;¢u#ÍÉÙž¾½Mg¶¬iñc¨Š³ŽLxnaU“séxXKK?ú¤íYj‘§±ù©„ÌWY	…ë½€$O*Ý’Ê�/BÇ,â¬õ‘œ gÛ:„˜ŠøJ\z,,8Kâ´O«N¥ý!ç;E­ä§£çeÒK›øgÉžÓÅêQ~ð¯V<{Ð»‚E½cYì•‚ïR'\ñiz¬Ð�±ÁÈ7r×[!£†­-XcÖo;êtü‹®×¢ô–à¾ˆèÌÙÚ9 Ì×\2Eù],ðsš›‘úhü„ÏüGäXk,ðÉà¢ÕƒÍDMØêì»¶Ößø¸kéœ°6_ÿ@”kÄ~å¬\3r’V+qùÒÆ*ò�ö‡¶aŒeîh„ r!•VÌÝÎ›fËËøÿážä?Ô—EV  Ð½ œë  `€>0‹    YZ  "   ˆl–Ým_J*j"Tâ‚Áãm)‹FÿÆƒh¹¿Ä      MAJOR=4
MINOR=10
DEVNAME=tty10
  $   	ˆl–ßi~”Je¶…8 ƒp\e•1hßÇ„d@y¯ÁÀÅ ?÷     	ý7zXZ  æÖ´F !   t/å£â÷D}] ?‘E„h=‰¦Úœ¦¬.+ËÌŒuÌòøùž8YNeïø8D¬ë»N§÷ß±Ã”"„»@£	8(ÒiK±Í¼GÙjvØçqy¨¬ž "C#Î-
˜´7WônFIO[ó«éŸ¿>`(ÄHa'žBÍU?«‚ö^ÑçŒt�&ax<[­°ðÛÝn0¼`%o�±ª:Ø¼‘2|Ð \¨`ÃCê;z=´ïg,	¹ÝºÕ8r»³kÀèé³tDœÞŠª(QaÁÁ­€~O­GÛÔýy›ywýÚÈžË	Bh°Éî,�—^#ô¾XK$1Ò3t#Í1|Œ¥�ARDñ±”9(h"  �P‡Ó6Š^E§š»¾LódpžÄJà©­r–MàšjL6<x{›¹²ó™–§[ìÿ`–Î5P�W ¤¹š«n–Y�×j‚¸˜æ‘Á»�‰â<âp-xÅOgz�Êp#uèsÞ+={þM
½iÃ¦EµNøÄI®ÒR;ºY©P…¶ô5K,U˜å‰u¢Ç| D:5…€Irš–Á~�Š6©x!6ïÔÝÅÓzÀJ‘5'®×p¡˜!Û]CðÃ8Ó'7ÜË¢yV#•ë÷+Œå5;p[ƒ5ø2-ÿrâÐ’[ÐxMLt(�ŒT¤E+ XƒÔB˜üp‰·ðª°™ -Mo6ûa2ÎSëåÊî«R£fè—Ø+yã·p¨ÃyÅÝT°�R˜¬Qo’ÔþÕ zâÃgÑ¾ñ¸°‚&Òeœ“Ç!<Ní¸¢H6æ0ÝBÀè<ÑìA/&FÓŸW»›ÌjF‚Å¿™æúaxVÓçÏÊ¾C·O¿«U½):{�Y¬{V‡oÅ½ø÷vôÀìSy�çLyrÇ	O�«ã5}Rÿnt}•:!û“›‰Vx8îÎÝþ¦‰åcŒé©h¼‹d|œÀ#>&•¶òíÌÔ’€Æ^¦ªñ>Ð¶qMo‰´Ê"E ¶�¹G'8 Ä
w…QÖ¿›�Ö 9“Í	ƒ®Ç4G˜[›=Ž³Ô\ÏÁÅ© Ðq¿—^1ðxâÙÐHÂ0Ü\¸>Û„Æîå6¾Êå$ÖÂU?Ý1zxŽÞ’J'FþŠ—_= Ö4cÜŸ×Ú}*‚œÏi««Þ6>Frx¼œ £÷˜6Ðgîåä`!ÊÖ¾Pi
F‰§†¶’VCÕ¶ò¼×Ôëuj7êAÐçg¬vËæY„Ú]¤‰0Z«8I)ø#Øƒ�ÆOÙ;@¥ç DBJ—Q“¨KVÃT¼ÚLÍje=ÞV�¿ÂB­"ì,cÁòõàÂxi2Çâ,-;£Œ6Š¬Ä¼/ãŽ"Úë´4†ì^f4�ð—¬¨¨Ô«¶gÜû¡¥gIéQ-z¦…õ÷ M±½2à4áúè„-þ3ÿ<t—úø
¯UÅL€M3Ùè1£ØÞë8y1+]#@ÜÝÛ©‹<·È°U/Ÿ¶vàájD$²˜4ŒEÒ�ÚÕâ`öû›aà]D‰ÜÙ$Wé‚Ù�Çƒ<ÕJá»SsmÒ¿Èi*L‚È>‡Ÿ°]N£›ÙûzýúÆ5ÿÜßIc¾›l{¡²ÒGìzEùâ@mUcêj\[^¨3émqa¿®NùíjËGærgÍEƒL"@)I%Ë+Oª¿ã”w¤µÁuè{Ë±®ÿ<'£´iÉ:ÙñKíÝî²`kLf¥~1TAÊ7¾‡üiú7±�|Àýü=Åì �$v:¯ª#¼j“æùr•Â”Î=cÛÿL\®Q=µdúa2Mf~iæéD/ÿêÙ-7‘UÎI»–Þ¾DS×…ÔxÊ4>ˆ�Ìpæe² ópÃH Â;EuSåðZ®/l²­áÀÙK�7eé?mŠêøaVçÌ–ÚˆÚ P×èñc»Ôÿ,ª½	höçê�X|ëNüGY€ÖÓ~	Ìµ8ã· õÒR±'¯£ÅÉÎ+úqÑT