mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 14:30:50 +00:00 
			
		
		
		
	 a447c09324
			
		
	
	
		a447c09324
		
	
	
	
	
		
			
			This is a much better version of a previous patch to make the parser tables constant. Rather than changing the typedef, we put the "const" in all the various places where its required, allowing the __initconst exception for nfsroot which was the cause of the previous trouble. This was posted for review some time ago and I believe its been in -mm since then. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Cc: Alexander Viro <aviro@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			34 lines
		
	
	
		
			923 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			923 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * linux/include/linux/parser.h
 | |
|  *
 | |
|  * Header for lib/parser.c
 | |
|  * Intended use of these functions is parsing filesystem argument lists,
 | |
|  * but could potentially be used anywhere else that simple option=arg
 | |
|  * parsing is required.
 | |
|  */
 | |
| 
 | |
| 
 | |
| /* associates an integer enumerator with a pattern string. */
 | |
| struct match_token {
 | |
| 	int token;
 | |
| 	const char *pattern;
 | |
| };
 | |
| 
 | |
| typedef struct match_token match_table_t[];
 | |
| 
 | |
| /* Maximum number of arguments that match_token will find in a pattern */
 | |
| enum {MAX_OPT_ARGS = 3};
 | |
| 
 | |
| /* Describe the location within a string of a substring */
 | |
| typedef struct {
 | |
| 	char *from;
 | |
| 	char *to;
 | |
| } substring_t;
 | |
| 
 | |
| int match_token(char *, const match_table_t table, substring_t args[]);
 | |
| int match_int(substring_t *, int *result);
 | |
| int match_octal(substring_t *, int *result);
 | |
| int match_hex(substring_t *, int *result);
 | |
| size_t match_strlcpy(char *, const substring_t *, size_t);
 | |
| char *match_strdup(const substring_t *);
 |