0
     ˆÂÅƒŒµÁ¿Ã b    /* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_GENERIC_CHECKSUM_H
#define __ASM_GENERIC_CHECKSUM_H

/*
 * computes the checksum of a memory block at buff, length len,
 * and adds in "sum" (32-bit)
 *
 * returns a 32-bit number suitable for feeding into itself
 * or csum_tcpudp_magic
 *
 * this function must be called with even lengths, except
 * for the last fragment, which may be odd
 *
 * it's best to have buff aligned on a 32-bit boundary
 */
extern __wsum csum_partial(const void *buff, int len, __wsum sum);

#ifndef ip_fast_csum
/*
 * This is a version of ip_compute_csum() optimized for IP headers,
 * which always checksum on 4 octet boundaries.
 */
extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
#endif

#ifndef csum_fold
/*
 * Fold a partial checksum
 */
static inline __sum16 csum_fold(__wsum csum)
{
	u32 sum = (__force u32)csum;
	sum = (sum & 0xffff) + (sum >> 16);
	sum = (sum & 0xffff) + (sum >> 16);
	return (__force __sum16)~sum;
}
#endif

#ifndef csum_tcpudp_nofold
/*
 * computes the checksum of the TCP/UDP pseudo-header
 * returns a 16-bit checksum, already complemented
 */
extern __wsum
csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
		   __u8 proto, __wsum sum);
#endif

#ifndef csum_tcpudp_magic
static inline __sum16
csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
		  __u8 proto, __wsum sum)
{
	return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
}
#endif

/*
 * this routine is used for miscellaneous IP-like checksums, mainly
 * in icmp.c
 */
extern __sum16 ip_compute_csum(const void *buff, int len);

#endif /* __ASM_GENERIC_CHECKSUM_H */
  "   ˆl–Ým_J*j"Tâ�rà]¸ÔÅ£Æƒh¹ÀÄ      0
     ˆÃÆƒoÂÀÄ     /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __ASM_GENERIC_IPCBUF_H
#define __ASM_GENERIC_IPCBUF_H

#include <linux/posix_types.h>

/*
 * The generic ipc64_perm structure:
 * Note extra padding because this structure is passed back and forth
 * between kernel and user space.
 *
 * ipc64_perm was originally meant to be architecture specific, but
 * everyone just ended up making identical copies without specific
 * optimizations, so we may just as well all use the same one.
 *
 * Pad space is left for:
 * - 32-bit mode_t on architectures that only had 16 bit
 * - 32-bit seq
 * - 2 miscellaneous 32-bit values
 */

struct ipc64_perm {
	__kernel_key_t		key;
	__kernel_uid32_t	uid;
	__kernel_gid32_t	gid;
	__kernel_uid32_t	cuid;
	__kernel_gid32_t	cgid;
	__kernel_mode_t		mode;
				/* pad if mode_t is u16: */
	unsigned char		__pad1[4 - sizeof(__kernel_mode_t)];
	unsigned short		seq;
	unsigned short		__pad2;
	__kernel_ulong_t	__unused1;
	__kernel_ulong_t	__unused2;
};

#endif /* __ASM_GENERIC_IPCBUF_H */
  1   ˆl–äY>”*e¶¥8 Aq°Ümå1hßÇƒd5_�uÐb&=LyZof¯ÂÆ ä    ‹     ÝYksÛÆýŽ_±UÚ1Ù!!‰ªKM2UlFf"[ª$+JÂŒf	,Éµ@€Á`ÔNûÛ{îÝÅƒ é8çCêÛÂ>ï=÷Ü×Ê¿y%öÎo_Ÿ¾½¹8}q3º=½]¼Ù{Ÿîñ¸¸¹¸8¿ÿàÈ?:êºý«WÃócÑžöŽûƒ§]¬¼R¡x%³žÅ�¿çùž¯§âOáðNŒÿ=öüP‰á�çÇSÏ÷í×Ðó§š¾Æÿ¡Õ×¯Ä›Ó×ô¢b!ó,‘A¦™é$ãŽZe}Üm{9¼~q5º$©1rº¾U‘Í•hŒ$SeÄR¥Ó$]@j:t�¹@FÑ£˜<ÒÏ<š—êX¤Ê,“Ø(‘%,C¨
(#&JÇ3!³Lsœ‚Yºh�/+_ˆoç*8Ò»Äm8GŠÛ31—…ÂNšq{¼S�4HËHeª'd²”Øç¦eª<§…
¡øe[Sèu{fz"I…Yª@Ou@GôD c\)–©*TŒÍ"7$y1æ2ž)l äîçqÜ7*ÿ…@Á¿ÕñãÿÆÐéÈø_^	˜È’x*:O»`ïëÅ÷Eåui“yÐKÆ	´HÅJ>N‘^è¬eKŸ�y-XÆM;oŸðÚ³«'Ò¨p¯G`­æ:˜W8 œ¨€óZÍùãö%A�§"ÌSÂÇ1Àd2Íò%Á*!Xô¦˜fPˆlãÖÍ¥±ka!Na�(Ä02LKôÖîa18·ç}€Ô|³˜êŸñã2ÑPy«Œ¸+ÝX(ŒJ‰¨–K0@›ËVsfÒ°†qÊaª1OŽ‘ƒû=þW¤y¤Œ=Û]è{–ñÎAhgÓ9déØä`§%3«”utŽ÷ ÒXE´2ë).…"f)q"€$Àcµrw hwyß	Ïcñè�ešÀYÍæÆ·•tƒ˜DšåÔ!$£{I§Š$
³ó_Þ²Êiª~VAsÑÑpˆ~åu@dÿÆ9=gè,Õ³”Út�KF–Çßl•ˆB¦šç)¯v›)›ƒ"¸=§yxMI…”^ª8$Â$6ž�*µ”¼YS°‘¢»;Ó$‡š®7ºû‘žìÓò}ÆË÷E×'I¡_%+fb¾X@Ø)5î]rôR0º½Åê)ié°&ÿ	©Ž8òìxÜã>à÷*“¡ÏWRp]Šñ“üG1(Í²O"År�³u6‡úï’ôd¡c€~wò]›€�èÜ<ÎEúp¿fÐ&ê›šTX;¦†s—$ÎgRT®�á˜Ô0ËSG™Ê«iÙ`Ü_ÑýÐÖ�o;®ZWm¦Sù$EB–ø;÷Ü
ÿ!†Ÿ$ØDß«¸³?3¸ßyþüÑóe¸v›;"…�­È%éS$)��f4'I‘):F!7æÞ~wmL�Á›nÉŽþÚµ[—ô„“&€8™ãd1+/€r‰x©žG·•�Ö¸£ü®†;´)É³ež•ÙÕPNŸ¦ÉÂñ)È"
ËYnÖLð×M¢ÿ±þÛ¨ý‹$Ä¨!Š™$RTY’FŠ™c}´B¢�–4Aw:kÑç»$Oc}î†òþ±z‰!s™�›Tgº´ÔL Âb™¤Ù	•Z÷·g÷TŒß¿¸x}y>¼~þ¤˜ÑO¶	¹