00001 #ifndef __BLACKBOX_HEADER__
00002 #define __BLACKBOX_HEADER__
00003
00004 #include "alchemist.h"
00005
00006 #ifndef ALCHEMIST_BLACKBOX_MOD_PATH
00007 #define ALCHEMIST_BLACKBOX_MOD_PATH "/usr/lib64/alchemist/blackbox"
00008 #endif
00009
00010 typedef struct AdmBlackBoxMethods {
00011 void (*free) (void *data);
00012
00013 AdmContext * (*read) (void *data,
00014 AdmError **error);
00015
00016 unsigned int (*listSerial) (void *data,
00017 unsigned int *array,
00018 unsigned int array_len,
00019 unsigned int top_serial,
00020 AdmError **error);
00021
00022 AdmContext * (*readSerial) (void *data,
00023 unsigned int serial,
00024 AdmError **error);
00025
00026 int (*write) (void *data,
00027 AdmContext *context,
00028 AdmError **error);
00029 } AdmBlackBoxMethods;
00030
00031
00032 struct AdmBlackBoxModuleVector {
00033 int abi_major_ver;
00034 int abi_minor_ver;
00035 int (*getBox) (AdmBlackBoxMethods **mod,
00036 void **data,
00037 AdmList *box_list,
00038 AdmError **error);
00039 };
00040
00041 #endif