• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdlib.h>
2 #include <syslinux/linux.h>
3 #include <syslinux/loadfile.h>
4 
setup_data_init(void)5 struct setup_data *setup_data_init(void)
6 {
7     struct setup_data *setup_data;
8 
9     setup_data = zalloc(sizeof(*setup_data));
10     if (!setup_data)
11 	return NULL;
12 
13     setup_data->prev = setup_data->next = setup_data;
14     return setup_data;
15 }
16 
setup_data_add(struct setup_data * head,uint32_t type,const void * data,size_t data_len)17 int setup_data_add(struct setup_data *head, uint32_t type,
18 		   const void *data, size_t data_len)
19 {
20 	struct setup_data *setup_data;
21 
22 	setup_data = zalloc(sizeof(*setup_data));
23 	if (!setup_data)
24 	    return -1;
25 
26 	setup_data->data     = data;
27 	setup_data->hdr.len  = data_len;
28 	setup_data->hdr.type = type;
29 	setup_data->prev     = head->prev;
30 	setup_data->next     = head;
31 	head->prev->next     = setup_data;
32 	head->prev           = setup_data;
33 
34 	return 0;
35 }
36 
setup_data_load(struct setup_data * head,uint32_t type,const char * filename)37 int setup_data_load(struct setup_data *head, uint32_t type,
38 		    const char *filename)
39 {
40 	void *data;
41 	size_t len;
42 
43 	if (loadfile(filename, &data, &len))
44 		return -1;
45 
46 	return setup_data_add(head, type, data, len);
47 }
48