187{
188 char *sectionName, *newSectionName;
189 char *attribsSpec, *alignSpec;
194
195 if (!section_attribs || !*section_attribs)
196 {
197 error(
"Section attributes specification is empty.\n");
198 return 1;
199 }
200
201 sectionName = section_attribs;
202
203
204 newSectionName =
strchr(section_attribs,
'=');
205 attribsSpec =
strchr(section_attribs,
',');
206 if (newSectionName && attribsSpec)
207 {
208
209 if (!(newSectionName < attribsSpec))
210 {
211 error(
"Invalid section attributes specification.\n");
212 return 1;
213 }
214 }
215 if (newSectionName)
216 *newSectionName++ = 0;
217 if (attribsSpec)
218 *attribsSpec++ = 0;
219
220
221 if (!*sectionName)
222 {
223 error(
"Invalid section attributes specification.\n");
224 return 1;
225 }
226
227 if (newSectionName && !*newSectionName)
228 {
229 error(
"Invalid section attributes specification.\n");
230 return 1;
231 }
232
233
235 if (attribsSpec)
236 {
237
239 {
241 {
243 break;
244 }
245 }
246 }
247 if (alignSpec)
248 *alignSpec++ = 0;
249
250
251 if (alignSpec && *alignSpec)
252 {
254 "Section alignment specification not currently supported! Ignoring.\n");
255 }
256
257
258 dwAttribs[0] = dwAttribs[1] = 0;
259 if (attribsSpec && *attribsSpec)
260 {
262 {
264 {
265
266
268 continue;
269 }
270
272 {
273 case 'C':
275 break;
276 case 'D':
278 break;
279 case 'E':
281 break;
282 case 'I':
284 break;
285 case 'K':
287 break;
288 case 'M':
290 break;
291 case 'O':
293 break;
294 case 'P':
296 break;
297 case 'R':
299 break;
300 case 'S':
302 break;
303 case 'U':
305 break;
306 case 'W':
308 break;
309
310 default:
311 error(
"Invalid section attributes specification.\n");
312 return 1;
313 }
314
315
317 }
318
320 {
321 error(
"Invalid section attributes specification.\n");
322 return 1;
323 }
324 }
325
326
330 {
332 continue;
333
334 Section = &SectionTable[
i];
335
336 if (newSectionName && *newSectionName)
337 {
340 }
341
342
343
346 }
347
348
349 if (!Section)
350 {
351 error(
"Section '%s' does not exist.\n", sectionName);
352 return 1;
353 }
354
355 return 0;
356}
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
char * strncpy(char *DstString, const char *SrcString, ACPI_SIZE Count)
char * strchr(const char *String, int ch)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
#define IMAGE_SCN_MEM_NOT_CACHED
#define IMAGE_SCN_MEM_WRITE
#define IMAGE_SCN_MEM_NOT_PAGED
#define IMAGE_SCN_CNT_INITIALIZED_DATA
#define IMAGE_SCN_CNT_CODE
#define IMAGE_SCN_MEM_EXECUTE
#define IMAGE_FIRST_SECTION(NtHeader)
#define IMAGE_SCN_MEM_DISCARDABLE
#define IMAGE_SCN_MEM_READ
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA
#define IMAGE_SCN_MEM_SHARED
#define IMAGE_SCN_LNK_INFO
#define IMAGE_SCN_LNK_REMOVE
static const char * g_Target
static const char * g_ApplicationName