1
     �Ça–Ü4ý()¨‰P@ŠWÀ…LZ7ÿÉ      File not found.
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÍƒ�¹_†I|¥�+ÀË x    /* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_KERNEL_READ_FILE_H
#define _LINUX_KERNEL_READ_FILE_H

#include <linux/file.h>
#include <linux/types.h>

/* This is a list of *what* is being read, not *how* nor *where*. */
#define __kernel_read_file_id(id) \
	id(UNKNOWN, unknown)		\
	id(FIRMWARE, firmware)		\
	id(MODULE, kernel-module)		\
	id(KEXEC_IMAGE, kexec-image)		\
	id(KEXEC_INITRAMFS, kexec-initramfs)	\
	id(POLICY, security-policy)		\
	id(X509_CERTIFICATE, x509-certificate)	\
	id(MAX_ID, )

#define __fid_enumify(ENUM, dummy) READING_ ## ENUM,
#define __fid_stringify(dummy, str) #str,

enum kernel_read_file_id {
	__kernel_read_file_id(__fid_enumify)
};

static const char * const kernel_read_file_str[] = {
	__kernel_read_file_id(__fid_stringify)
};

static inline const char *kernel_read_file_id_str(enum kernel_read_file_id id)
{
	if ((unsigned int)id >= READING_MAX_ID)
		return kernel_read_file_str[READING_UNKNOWN];

	return kernel_read_file_str[id];
}

ssize_t kernel_read_file(struct file *file, loff_t offset,
			 void **buf, size_t buf_size,
			 size_t *file_size,
			 enum kernel_read_file_id id);
ssize_t kernel_read_file_from_path(const char *path, loff_t offset,
				   void **buf, size_t buf_size,
				   size_t *file_size,
				   enum kernel_read_file_id id);
ssize_t kernel_read_file_from_path_initns(const char *path, loff_t offset,
					  void **buf, size_t buf_size,
					  size_t *file_size,
					  enum kernel_read_file_id id);
ssize_t kernel_read_file_from_fd(int fd, loff_t offset,
				 void **buf, size_t buf_size,
				 size_t *file_size,
				 enum kernel_read_file_id id);

#endif /* _LINUX_KERNEL_READ_FILE_H */
  "   ˆl–Ü4ý()¨‰P@ŠWÀ…LZ7ÿÏƒh¹ÁÌ      1
     �ËÁÌ      File not found.
     �ËÁÌ      File not found.
     !ˆ¾Ïƒh¹ÁÌ      !128
     #ˆ¾Ïƒh¹ÁÌ      #live
  #   %ˆl–Ým_Jµ!®Å8 CpÜi•1hßÐ„Ï?ÂÍ ?÷     %Þ•    Í      „    ì      @     A     H  /   L     |     “        2   ¦     Ù     ó  2   ú  #   -  1   Q     ƒ     Š  º   ¤  ½   _          #     +     I  !   _     �  "   œ  -   ¿  %   í  (     1   <  *   n  2   ™  %   Ì  $   ò          5     R  $   r  !   —     ¹  %   Õ      û           =     V  $   r     —  %   µ  $   Û        '        E     b     �     ž     ³     Ë     è  "        %     C      X      y     š      ³     Ô     í  $   	     .  %   L     r     Š  #   ª     Î     ë     	  5   %     [     z  !   ™  (   »  !   ä  !     &   (     O  $   i  /   Ž  /   ¾  4   î     #  ?   =  )   }  )   §  .   Ñ  )      )   *  .   T  )   ƒ  )   ­  .   ×  $     !   +     M     `     h     o     {     ƒ     Œ     “  	   ›     ¥  ;   ¸  "   ô              4   $      Y      u      „      Ÿ      ¨      ±      Ï      ì   
   õ   <    !  #   =!  	   a!  	   k!     u!     y!     ~!     Œ!     ˜!     �!     ¥!     ¨!     Á!     Õ!     ç!     ó!  
   ø!     "     "     "  8   %"     ^"     e"     k"     t"     “"  &   ¬"     Ó"     ã"  "   þ"     !#     <#     B#     I#     [#     m#     {#     ”#     ¡#     ±#  :   Â#  7   ý#     5$     T$  (   [$  $   „$     ©$     ±$     ¾$     Ó$     Ù$     à$     å$     û$  '   %     4%     P%     W%     c%     w%     Œ%     ¤%     Â%  '   Ý%     &     &     &     9&  %   =&  <   c&  0    &     Ñ&  4   Þ&  #   '  	   7'     A'     F'     J'     M'     R'  #   Z'  h  ~'     ç(  	   î(  B   ø(  "   ;)     ^)     k)  F   s)  &   º)     á)  ?   é)  ,   )*  G   V*     ž*  -   §*  Ö   Õ*  È   ¬+     u,     |,  4   …,  +   º,  ;   æ,  +   "-  C   N-  F   ’-  =   Ù-  A   .  M   Y.  =   §.  U   å.  4   ;/  5   p/  ,   ¦/  -   Ó/  +   0  2   -0  ,   `0  (   �0  ?   ¶0  >   ö0  2   51  )   h1  -   ’1  9   À1  )   ú1  A   $2  4   f2  %   ›2  M   Á2  *   3 