1#! /usr/bin/sh 2# 3# CDDL HEADER START 4# 5# The contents of this file are subject to the terms of the 6# Common Development and Distribution License, Version 1.0 only 7# (the "License"). You may not use this file except in compliance 8# with the License. 9# 10# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11# or http://www.opensolaris.org/os/licensing. 12# See the License for the specific language governing permissions 13# and limitations under the License. 14# 15# When distributing Covered Code, include this CDDL HEADER in each 16# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17# If applicable, add the following below this CDDL HEADER, with the 18# fields enclosed by brackets "[]" replaced with your own identifying 19# information: Portions Copyright [yyyy] [name of copyright owner] 20# 21# CDDL HEADER END 22# 23# 24# ident "%Z%%M% %I% %E% SMI" 25# 26# Copyright 2005 Sun Microsystems, Inc. All rights reserved. 27# Use is subject to license terms. 28# 29 30INFILE=classes.tmp 31INFILE1=assocclasses.tmp 32CLASSFILE=classes 33ASSOCCLASSFILE=assocclasses 34LIBFILE=libname 35TMPFILE=tmp.tmp 36TMPFILE1=tmp1.tmp 37PWD=`pwd` 38 39HEADER=${PWD}/master.h 40 41 42rm -f $HEADER $TMPFILE $TMPFILE1 $CLASSFILE $ASSOCCLASSFILE $LIBFILE 43 44# Convert into separate lines per class 45for x in `cat $INFILE` 46do 47 echo $x >> $TMPFILE 48done 49 50# Convert into separate lines per class 51for x in `cat $INFILE1` 52do 53 echo $x >> $TMPFILE1 54done 55##################################################### 56# Create file containing only the library name 57tail -1 $TMPFILE > $LIBFILE 58LIBNAME=`cat $LIBFILE` 59 60# Create file containing only the class names 61COUNT=`cat $TMPFILE | wc -l` 62COUNT=`expr $COUNT - 1` 63head -n $COUNT $TMPFILE > $CLASSFILE 64 65# Create file containing only the class names 66COUNT=`cat $TMPFILE1 | wc -l` 67COUNT=`expr $COUNT - 1` 68head -n $COUNT $TMPFILE1 > $ASSOCCLASSFILE 69############################################################## 70# 71# Create the header file 72# 73echo "#include <cimapi.h>" > $HEADER 74echo "#include <cimlogsvc.h>" > $HEADER 75 76# 77# Create the externs 78# cp_enumInstances 79# 80 81echo "" >> $HEADER 82for x in `cat $TMPFILE` 83do 84 echo "extern CCIMInstanceList*" >> $HEADER 85 echo "cp_enumInstances_$x(CCIMObjectPath* pOP);" >> $HEADER 86done 87 88 89# 90# Create the externs 91# cp_enumInstanceNames 92# 93 94echo "" >> $HEADER 95for x in `cat $TMPFILE` 96do 97 echo "extern CCIMObjectPathList*" >> $HEADER 98 echo "cp_enumInstanceNames_$x(CCIMObjectPath* pOP);" >> $HEADER 99done 100 101# 102# cp_createInstance 103# 104 105echo "" >> $HEADER 106for x in `cat $TMPFILE` 107do 108 echo "extern CCIMObjectPath*" >> $HEADER 109 echo "cp_createInstance_$x(CCIMObjectPath* pOP, CCIMInstance* pInst);" >> $HEADER 110done 111 112# 113# cp_deleteInstance 114# 115 116echo "" >> $HEADER 117for x in `cat $TMPFILE` 118do 119 echo "extern CIMBool" >> $HEADER 120 echo "cp_deleteInstance_$x(CCIMObjectPath* pOP);" >> $HEADER 121done 122 123# 124# cp_getInstance 125# 126 127echo "" >> $HEADER 128for x in `cat $TMPFILE` 129do 130 echo "extern CCIMInstance*" >> $HEADER 131 echo "cp_getInstance_$x(CCIMObjectPath* pOP);" >> $HEADER 132done 133 134# 135# cp_setInstance 136# 137 138echo "" >> $HEADER 139for x in `cat $TMPFILE` 140do 141 echo "extern CIMBool" >> $HEADER 142 echo "cp_setInstance_$x(CCIMObjectPath* pOP, CCIMInstance* pInst);" >> $HEADER 143done 144 145# 146# cp_setProperty 147# 148 149echo "" >> $HEADER 150for x in `cat $TMPFILE` 151do 152 echo "extern CIMBool" >> $HEADER 153 echo "cp_setProperty_$x(CCIMObjectPath* pOP, CCIMProperty* pProp);" >> $HEADER 154done 155 156# 157# cp_invokeMethod 158# 159 160echo "" >> $HEADER 161for x in `cat $TMPFILE` 162do 163 echo "extern CCIMProperty*" >> $HEADER 164 echo "cp_invokeMethod_$x(CCIMObjectPath* pOP, cimchar* pName,CCIMPropertyList* pInParams,CCIMPropertyList* pInOutParams);" >> $HEADER 165done 166 167# 168# cp_execQuery 169# 170 171echo "" >> $HEADER 172for x in `cat $TMPFILE` 173do 174 echo "extern CCIMInstanceList *" >> $HEADER 175 echo "cp_execQuery_$x(CCIMObjectPath* pOP, char *selectList,char *nonJoinExp, char *queryExp, char *queryType);" >> $HEADER 176done 177 178 179# 180# cp_associators 181# 182 183echo "" >> $HEADER 184for x in `cat $TMPFILE1` 185do 186 echo "extern CCIMInstanceList *" >> $HEADER 187 echo "cp_associators_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pResultClass, char *pRole, char *pResultRole);" >> $HEADER 188done 189 190# 191# cp_associatorNames 192# 193 194echo "" >> $HEADER 195for x in `cat $TMPFILE1` 196do 197 echo "extern CCIMObjectPathList *" >> $HEADER 198 echo "cp_associatorNames_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pResultClass, char *pRole, char *pResultRole);" >> $HEADER 199done 200 201# 202# cp_reference 203# 204 205echo "" >> $HEADER 206for x in `cat $TMPFILE1` 207do 208 echo "extern CCIMObjectPathList *" >> $HEADER 209 echo "cp_references_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pRole);" >> $HEADER 210done 211 212# 213# cp_referenceNames 214# 215 216echo "" >> $HEADER 217for x in `cat $TMPFILE1` 218do 219 echo "extern CCIMObjectPathList *" >> $HEADER 220 echo "cp_referenceNames_$x(CCIMObjectPath* pAssocName, CCIMObjectPath *pObjectName, char *pRole);" >> $HEADER 221done 222 223############################################################## 224# 225# Create the dispatch tables 226# 227############################################################## 228 229 230# 231# *cpInvokeMethodTable 232# 233 234echo "" >> $HEADER 235echo "CCIMProperty *" >> $HEADER 236echo "(*cpInvokeMethodTable[])(CCIMObjectPath *, cimchar *, CCIMPropertyList *, CCIMPropertyList *) = {" >> $HEADER 237for x in `cat $CLASSFILE` 238do 239 echo "cp_invokeMethod_$x," >> $HEADER 240done 241 242echo "cp_invokeMethod_$LIBNAME};" >> $HEADER 243 244 245# 246# *createInstanceTable 247# 248 249echo "" >> $HEADER 250echo "CCIMObjectPath *" >> $HEADER 251echo "(*createInstanceTable[])(CCIMObjectPath *, CCIMInstance *) = {" >> $HEADER 252for x in `cat $CLASSFILE` 253do 254 echo "cp_createInstance_$x," >> $HEADER 255done 256echo "cp_createInstance_$LIBNAME};" >> $HEADER 257 258# 259# *deleteInstanceTable 260# 261 262echo "" >> $HEADER 263echo "CIMBool" >> $HEADER 264echo "(*deleteInstanceTable[])( CCIMObjectPath *) = {" >> $HEADER 265for x in `cat $CLASSFILE` 266do 267 echo "cp_deleteInstance_$x," >> $HEADER 268done 269echo "cp_deleteInstance_$LIBNAME};" >> $HEADER 270 271# 272# *enumInstanceTable 273# 274 275echo "" >> $HEADER 276echo "CCIMInstanceList *" >> $HEADER 277echo "(*enumInstanceTable[])(CCIMObjectPath *) = {" >> $HEADER 278for x in `cat $CLASSFILE` 279do 280 echo "cp_enumInstances_$x," >> $HEADER 281done 282echo "cp_enumInstances_$LIBNAME};" >> $HEADER 283 284# 285# *enumInstanceNamesTable 286# 287 288echo "" >> $HEADER 289echo "CCIMObjectPathList *" >> $HEADER 290echo "(*enumInstanceNamesTable[])(CCIMObjectPath *) = {" >> $HEADER 291for x in `cat $CLASSFILE` 292do 293 echo "cp_enumInstanceNames_$x," >> $HEADER 294done 295echo "cp_enumInstanceNames_$LIBNAME};" >> $HEADER 296 297# 298# *getInstanceTable 299# 300 301echo "" >> $HEADER 302echo "CCIMInstance *" >> $HEADER 303echo "(*getInstanceTable[])(CCIMObjectPath *) = {" >> $HEADER 304for x in `cat $CLASSFILE` 305do 306 echo "cp_getInstance_$x," >> $HEADER 307done 308echo "cp_getInstance_$LIBNAME};" >> $HEADER 309 310# 311# *setInstanceTable 312# 313 314echo "" >> $HEADER 315echo "CIMBool" >> $HEADER 316echo "(*setInstanceTable[])(CCIMObjectPath *, CCIMInstance *) = {" >> $HEADER 317for x in `cat $CLASSFILE` 318do 319 echo "cp_setInstance_$x," >> $HEADER 320done 321echo "cp_setInstance_$LIBNAME};" >> $HEADER 322 323# 324# *setPropertyTable 325# 326 327echo "" >> $HEADER 328echo "CIMBool" >> $HEADER 329echo "(*setPropertyTable[])(CCIMObjectPath *, CCIMProperty *) = {" >> $HEADER 330for x in `cat $CLASSFILE` 331do 332 echo "cp_setProperty_$x," >> $HEADER 333done 334echo "cp_setProperty_$LIBNAME};" >> $HEADER 335 336# 337# *execQueryTable 338# 339 340echo "" >> $HEADER 341echo "CCIMInstanceList*" >> $HEADER 342echo "(*execQueryTable[])(CCIMObjectPath *, char *, char *, char *, char*) = {" >> $HEADER 343for x in `cat $CLASSFILE` 344do 345 echo "cp_execQuery_$x," >> $HEADER 346done 347echo "cp_execQuery_$LIBNAME};" >> $HEADER 348 349 350# 351# *associatorsTable 352# 353 354echo "" >> $HEADER 355echo "CCIMInstanceList*" >> $HEADER 356echo "(*associatorsTable[])(CCIMObjectPath *, CCIMObjectPath *, char *, char *, char*) = {" >> $HEADER 357for x in `cat $ASSOCCLASSFILE` 358do 359 echo "cp_associators_$x," >> $HEADER 360done 361echo "cp_associators_$LIBNAME};" >> $HEADER 362 363############################################################## 364# 365# *associatorNamesTable 366# 367 368echo "" >> $HEADER 369echo "CCIMObjectPathList*" >> $HEADER 370echo "(*associatorNamesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *, char *, char*) = {" >> $HEADER 371for x in `cat $ASSOCCLASSFILE` 372do 373 echo "cp_associatorNames_$x," >> $HEADER 374done 375echo "cp_associatorNames_$LIBNAME};" >> $HEADER 376 377 378############################################################## 379# 380# *referencesTable 381# 382 383echo "" >> $HEADER 384echo "CCIMObjectPathList*" >> $HEADER 385echo "(*referencesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *) = {" >> $HEADER 386for x in `cat $ASSOCCLASSFILE` 387do 388 echo "cp_references_$x," >> $HEADER 389done 390echo "cp_references_$LIBNAME};" >> $HEADER 391 392############################################################## 393# 394# *referenceNamesTable 395# 396 397echo "" >> $HEADER 398echo "CCIMObjectPathList*" >> $HEADER 399echo "(*referenceNamesTable[])(CCIMObjectPath *, CCIMObjectPath *, char *) = {" >> $HEADER 400for x in `cat $ASSOCCLASSFILE` 401do 402 echo "cp_referenceNames_$x," >> $HEADER 403done 404echo "cp_referenceNames_$LIBNAME};" >> $HEADER 405# 406# Create Class Name table 407# 408echo "" >> $HEADER 409echo "static char *classNameTable [] = {" >> $HEADER 410for x in `cat $CLASSFILE` 411do 412 echo "\"$x\"," >> $HEADER 413done 414echo "\"$LIBNAME\"};" >> $HEADER 415 416############################################################## 417# 418# Create Assoc Class Name table 419# 420echo "" >> $HEADER 421echo "static char *assocclassNameTable [] = {" >> $HEADER 422for x in `cat $ASSOCCLASSFILE` 423do 424 echo "\"$x\"," >> $HEADER 425done 426echo "\"$LIBNAME\"};" >> $HEADER 427