| /* SPDX-License-Identifier: GPL-2.0-or-later */ | 
 | /* | 
 |  * Copyright (c) 2024 Oracle.  All Rights Reserved. | 
 |  * Author: Darrick J. Wong <djwong@kernel.org> | 
 |  */ | 
 | #ifndef __LIBFROG_FAKELIBATTR_H__ | 
 | #define __LIBFROG_FAKELIBATTR_H__ | 
 |  | 
 | /* This file emulates APIs from the deprecated libattr. */ | 
 |  | 
 | struct attrlist_cursor; | 
 |  | 
 | static inline struct xfs_attrlist_ent * | 
 | libfrog_attr_entry( | 
 | 	struct xfs_attrlist	*list, | 
 | 	unsigned int		index) | 
 | { | 
 | 	char			*buffer = (char *)list; | 
 |  | 
 | 	return (struct xfs_attrlist_ent *)&buffer[list->al_offset[index]]; | 
 | } | 
 |  | 
 | static inline int | 
 | libfrog_attr_list_by_handle( | 
 | 	void				*hanp, | 
 | 	size_t				hlen, | 
 | 	void				*buf, | 
 | 	size_t				bufsize, | 
 | 	int				flags, | 
 | 	struct xfs_attrlist_cursor	*cursor) | 
 | { | 
 | 	return attr_list_by_handle(hanp, hlen, buf, bufsize, flags, | 
 | 			(struct attrlist_cursor *)cursor); | 
 | } | 
 |  | 
 | #endif /* __LIBFROG_FAKELIBATTR_H__ */ |