Chameleon Applications

Chameleon Applications Svn Source Tree

Root/branches/iFabio/Chameleon/i386/libsaio/xml.h

Source at commit 307 created 12 years 11 months ago.
By ifabio, merge changes from trunk (929). Also merge the module changes from Azimutz branche (fix compile error) Also edited the info.plist into AHCIPortInjector.kext: http://forum.voodooprojects.org/index.php/topic,1170.0.html
1/*
2 * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Portions Copyright (c) 2003 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 2.0 (the "License"). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
13 *
14 * The Original Code and all software distributed under the License are
15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License.
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24
25#ifndef __LIBSAIO_XML_H
26#define __LIBSAIO_XML_H
27
28enum xmltype {
29 kTagTypeNone = 0,
30 kTagTypeDict,
31 kTagTypeKey,
32 kTagTypeString,
33 kTagTypeInteger,
34 kTagTypeData,
35 kTagTypeDate,
36 kTagTypeFalse,
37 kTagTypeTrue,
38 kTagTypeArray
39};
40
41struct string_ref
42{
43char* string;
44int id;
45struct string_ref* next;
46};
47typedef struct string_ref string_ref;
48
49extern string_ref* ref_strings;
50
51#define kXMLTagPList "plist "
52#define kXMLTagDict "dict"
53#define kXMLTagKey "key"
54#define kXMLTagString "string"
55#define kXMLTagInteger "integer"
56#define kXMLTagData "data"
57#define kXMLTagDate "date"
58#define kXMLTagFalse "false/"
59#define kXMLTagTrue "true/"
60#define kXMLTagArray "array"
61
62#define kXMLStringID"ID="
63#define kXMLStringIDRef "IDREF="
64
65#define kPropCFBundleIdentifier ("CFBundleIdentifier")
66#define kPropCFBundleExecutable ("CFBundleExecutable")
67#define kPropOSBundleRequired ("OSBundleRequired")
68#define kPropOSBundleLibraries ("OSBundleLibraries")
69#define kPropIOKitPersonalities ("IOKitPersonalities")
70#define kPropIONameMatch ("IONameMatch")
71
72/*
73struct Tag {
74 long type;
75 char *string;
76 struct Tag *tag;
77 struct Tag *tagNext;
78};
79typedef struct Tag Tag, *TagPtr;
80 */
81
82extern long gImageFirstBootXAddr;
83extern long gImageLastKernelAddr;
84
85TagPtr XMLGetProperty( TagPtr dict, const char * key );
86TagPtr XMLGetElement( TagPtr dict, int id );
87int XMLTagCount( TagPtr dict );
88
89bool XMLIsType(TagPtr dict, enum xmltype type);
90
91bool XMLCastBoolean( TagPtr dict );
92char* XMLCastString( TagPtr dict );
93long XMLCastStringOffset(TagPtr dict);
94int XMLCastInteger ( TagPtr dict );
95TagPtr XMLCastDict ( TagPtr dict );
96TagPtr XMLCastArray( TagPtr dict );
97
98long XMLParseNextTag(char *buffer, TagPtr *tag);
99void XMLFreeTag(TagPtr tag);
100char* XMLDecode(const char *in);
101//==========================================================================
102// XMLParseFile
103// Expects to see one dictionary in the XML file.
104// Puts the first dictionary it finds in the
105// tag pointer and returns 0, or returns -1 if not found.
106//
107long XMLParseFile( char * buffer, TagPtr * dict );
108
109#endif /* __LIBSAIO_XML_H */
110

Archive Download this file

Revision: 307