Main probe API
[Probes and S-expression]

Most of the operations that need to be done in a probe, processing input object, manipulating entities, creating output items. More...

Files

file  probe-api.h

Defines

#define probe_item_creat(name, attrs,...)   probe_obj_creat (name, attrs, __VA_ARGS__)
 Create a new item consisting of a name, optional attributes argument and an arbitrary number of entities.
#define probe_item_getent(item, name, n)   probe_obj_getent (item, name, n)
#define PROBE_EINVAL   1
#define PROBE_ENOELM   2
#define PROBE_ENOVAL   3
#define PROBE_ENOATTR   4
#define PROBE_EINIT   5
#define PROBE_ENOMEM   6
#define PROBE_EOPNOTSUPP   7
#define PROBE_ERANGE   8
#define PROBE_EDOM   9
#define PROBE_EFAULT   10
#define PROBE_EACCES   11
#define PROBE_ESETEVAL   12
#define PROBE_ENOENT   13
#define PROBE_EFATAL   254
#define PROBE_EUNKNOWN   255
#define OVAL_STATUS_UNKNOWN   SYSCHAR_STATUS_UNKNOWN
#define OVAL_STATUS_ERROR   SYSCHAR_STATUS_ERROR
#define OVAL_STATUS_EXISTS   SYSCHAR_STATUS_EXISTS
#define OVAL_STATUS_DOESNOTEXIST   SYSCHAR_STATUS_DOES_NOT_EXIST
#define OVAL_STATUS_NOTCOLLECTED   SYSCHAR_STATUS_NOT_COLLECTED
#define PROBECMD_STE_FETCH   1
#define PROBECMD_OBJ_EVAL   2

Functions

SEXP_tprobe_item_build (const char *fmt,...)
 Build a new item according to the scpecified format.
SEXP_tprobe_item_new (const char *name, SEXP_t *attrs)
 Create a new item with just a name and optional attributes argument.
SEXP_tprobe_item_attr_add (SEXP_t *item, const char *name, SEXP_t *val)
 Add a new attribute to an item.
SEXP_tprobe_item_ent_add (SEXP_t *item, const char *name, SEXP_t *attrs, SEXP_t *val)
 Add a new entity to an item.
int probe_item_setstatus (SEXP_t *obj, oval_syschar_status_t status)
 Set item's status.
int probe_itement_setstatus (SEXP_t *obj, const char *name, uint32_t n, oval_syschar_status_t status)
 Set status of an item's entity.
SEXP_tprobe_item_newid (struct id_desc_t *id_desc)
 Get a new unique id (within a probe) for an item.
void probe_item_resetid (struct id_desc_t *id_desc)
 Reset the item id generator.
SEXP_tprobe_attr_creat (const char *name, const SEXP_t *val,...)
 Create a new list of attributes.
SEXP_tprobe_obj_build (const char *fmt,...)
 Build a new object according to the scpecified format.
SEXP_tprobe_obj_creat (const char *name, SEXP_t *attrs,...)
 Create a new object consisting of a name, optional attributes argument and an arbitrary number of entities.
SEXP_tprobe_obj_new (const char *name, SEXP_t *attrs)
 Create a new object with just a name and optional attributes argument.
SEXP_tprobe_obj_getent (const SEXP_t *obj, const char *name, uint32_t n)
 Get an entity from an object.
SEXP_tprobe_obj_getentval (const SEXP_t *obj, const char *name, uint32_t n)
 Get the value of an object's entity.
int probe_obj_getentvals (const SEXP_t *obj, const char *name, uint32_t n, SEXP_t **res)
 Get the list of values of an object's entity.
SEXP_tprobe_obj_getattrval (const SEXP_t *obj, const char *name)
 Get the value of an object's attribute.
bool probe_obj_attrexists (const SEXP_t *obj, const char *name)
 Check whether the specified attribute exists.
int probe_obj_setstatus (SEXP_t *obj, oval_syschar_status_t status)
 Set objects's status.
int probe_objent_setstatus (SEXP_t *obj, const char *name, uint32_t n, oval_syschar_status_t status)
 Set status of an object's entity.
char * probe_obj_getname (const SEXP_t *obj)
 Get the name of an object.
size_t probe_obj_getname_r (const SEXP_t *obj, char *buffer, size_t buflen)
 Get the name of an object.
SEXP_t_probe_cobj_new (oval_syschar_collection_flag_t flag, const SEXP_t *item_list)
SEXP_t_probe_cobj_get_items (const SEXP_t *cobj)
oval_syschar_collection_flag_t _probe_cobj_get_flag (const SEXP_t *cobj)
oval_syschar_collection_flag_t _probe_cobj_combine_flags (oval_syschar_collection_flag_t f1, oval_syschar_collection_flag_t f2, oval_setobject_operation_t op)
SEXP_tprobe_ent_creat (const char *name, SEXP_t *attrs, SEXP_t *val,...)
 Create a new list of entities.
SEXP_tprobe_ent_creat1 (const char *name, SEXP_t *attrs, SEXP_t *val)
 Create a new entity.
SEXP_tprobe_ent_attr_add (SEXP_t *ent, const char *name, SEXP_t *val)
 Add a new attribute to an entity.
SEXP_tprobe_ent_getval (const SEXP_t *ent)
 Get the value of an entity.
int probe_ent_getvals (const SEXP_t *ent, SEXP_t **res)
 Get the list of values of an entity.
SEXP_tprobe_ent_getattrval (const SEXP_t *ent, const char *name)
 Get the value of an entity's attribute.
bool probe_ent_attrexists (const SEXP_t *ent, const char *name)
 Check whether the specified attribute exists.
int probe_ent_setdatatype (SEXP_t *ent, oval_datatype_t type)
 Set the OVAL data type of an entity.
oval_datatype_t probe_ent_getdatatype (const SEXP_t *ent)
 Get the OVAL data type of an entity.
int probe_ent_setmask (SEXP_t *ent, bool mask)
 Set entity's mask.
bool probe_ent_getmask (const SEXP_t *ent)
 Get entity's mask.
int probe_ent_setstatus (SEXP_t *ent, oval_syschar_status_t status)
 Set entity's status.
oval_syschar_status_t probe_ent_getstatus (const SEXP_t *ent)
 Get entity status.
char * probe_ent_getname (const SEXP_t *ent)
 Get the name of an entity.
size_t probe_ent_getname_r (const SEXP_t *ent, char *buffer, size_t buflen)
 Get the name of an entity.
void probe_free (SEXP_t *obj)
 Free the memory allocated by the probe_* functions.
void * probe_init (void) __attribute__((unused))
void probe_fini (void *) __attribute__((unused))
SEXP_tprobe_main (SEXP_t *, int *, void *) __attribute__((nonnull(1

Detailed Description

Most of the operations that need to be done in a probe, processing input object, manipulating entities, creating output items.


Define Documentation

#define probe_item_creat ( name,
attrs,
...   )     probe_obj_creat (name, attrs, __VA_ARGS__)

Create a new item consisting of a name, optional attributes argument and an arbitrary number of entities.

Every entity is a triple: const char *name - name of the new entity SEXP_t attrs - optional list of entity attributes in a sexp, can be NULL SEXP_t val - value of the new entity in a sexp This function increments its SEXP_t arguments' reference count.

Parameters:
name mandatory name argument
attrs optional item's attributes argument
... arbitrary number of entity arguments

Function Documentation

SEXP_t* probe_attr_creat ( const char *  name,
const SEXP_t val,
  ... 
)

Create a new list of attributes.

This function increments its val argument's reference count.

Parameters:
name the name of the attribute
val the value of the attribute
... there can be an arbitrary number of name - value pairs
SEXP_t* probe_ent_attr_add ( SEXP_t ent,
const char *  name,
SEXP_t val 
)

Add a new attribute to an entity.

This function increments its val argument's reference count.

Parameters:
ent the entity to be modified
name name of the new attribute
val value of the new attribute
bool probe_ent_attrexists ( const SEXP_t ent,
const char *  name 
)

Check whether the specified attribute exists.

Parameters:
ent the queried entity
name the name of the attribute
SEXP_t* probe_ent_creat ( const char *  name,
SEXP_t attrs,
SEXP_t val,
  ... 
)

Create a new list of entities.

This function increments its SEXP_t arguments' reference count.

Parameters:
name the name of the entity
attrs optional entity's attributes argument
val the value of the entity
... there can be an arbitrary number of name - attributes - value triples
SEXP_t* probe_ent_creat1 ( const char *  name,
SEXP_t attrs,
SEXP_t val 
)

Create a new entity.

This function increments its SEXP_t arguments' reference count.

Parameters:
name the name of the entity
attrs optional entity's attributes argument
val the value of the entity
SEXP_t* probe_ent_getattrval ( const SEXP_t ent,
const char *  name 
)

Get the value of an entity's attribute.

Parameters:
ent the queried entity
name the name of the attribute
oval_datatype_t probe_ent_getdatatype ( const SEXP_t ent  ) 

Get the OVAL data type of an entity.

Parameters:
ent the queried entity
bool probe_ent_getmask ( const SEXP_t ent  ) 

Get entity's mask.

Parameters:
ent the queried entity
char* probe_ent_getname ( const SEXP_t ent  ) 

Get the name of an entity.

Parameters:
ent the queried entity
size_t probe_ent_getname_r ( const SEXP_t ent,
char *  buffer,
size_t  buflen 
)

Get the name of an entity.

The name is stored in the provided buffer.

Parameters:
ent the queried entity
buffer the buffer to store the name in
buflen the length of the buffer
oval_syschar_status_t probe_ent_getstatus ( const SEXP_t ent  ) 

Get entity status.

Parameters:
ent the queried entity
SEXP_t* probe_ent_getval ( const SEXP_t ent  ) 

Get the value of an entity.

The function respects the var_ref attribute and returns the currently selected value.

Parameters:
ent the queried entity
int probe_ent_getvals ( const SEXP_t ent,
SEXP_t **  res 
)

Get the list of values of an entity.

If the entity uses var_ref, there can be more than one value.

Parameters:
ent the queried entity
res the resulting value list is stored in this argument
Returns:
number of values in the list stored in the res argument
int probe_ent_setdatatype ( SEXP_t ent,
oval_datatype_t  type 
)

Set the OVAL data type of an entity.

Parameters:
ent the queried entity
type the new data type
int probe_ent_setmask ( SEXP_t ent,
bool  mask 
)

Set entity's mask.

Parameters:
ent the queried entity the new mask
int probe_ent_setstatus ( SEXP_t ent,
oval_syschar_status_t  status 
)

Set entity's status.

Parameters:
ent the entity to be modified
status the new status
void probe_free ( SEXP_t obj  ) 

Free the memory allocated by the probe_* functions.

Parameters:
obj the object to be freed
SEXP_t* probe_item_attr_add ( SEXP_t item,
const char *  name,
SEXP_t val 
)

Add a new attribute to an item.

This function increments its val argument's reference count.

Parameters:
item the item to be modified
name name of the new attribute
val value of the new attribute
SEXP_t* probe_item_build ( const char *  fmt,
  ... 
)

Build a new item according to the scpecified format.

Parameters:
fmt the desired format
SEXP_t* probe_item_ent_add ( SEXP_t item,
const char *  name,
SEXP_t attrs,
SEXP_t val 
)

Add a new entity to an item.

This function increments its attrs and val arguments' reference count.

Parameters:
item the item to be modified
name name of the new entity
attrs optional attributes of the new entity
val value of the new entity
SEXP_t* probe_item_new ( const char *  name,
SEXP_t attrs 
)

Create a new item with just a name and optional attributes argument.

Parameters:
name item's name
attrs optional attributes argument
SEXP_t* probe_item_newid ( struct id_desc_t id_desc  ) 

Get a new unique id (within a probe) for an item.

Parameters:
id_desc pointer to a structure holding the global id context
Returns:
a new id
void probe_item_resetid ( struct id_desc_t id_desc  ) 

Reset the item id generator.

Parameters:
id_desc pointer to a structure holding the global id context
int probe_item_setstatus ( SEXP_t obj,
oval_syschar_status_t  status 
)

Set item's status.

Parameters:
obj the item to be modified
status the new status
int probe_itement_setstatus ( SEXP_t obj,
const char *  name,
uint32_t  n,
oval_syschar_status_t  status 
)

Set status of an item's entity.

Parameters:
obj the item to be modified
name the name of the entity
n select the n-th occurence of an entity with the specified name
status the new status
bool probe_obj_attrexists ( const SEXP_t obj,
const char *  name 
)

Check whether the specified attribute exists.

Parameters:
obj the queried object
name the name of the attribute
SEXP_t* probe_obj_build ( const char *  fmt,
  ... 
)

Build a new object according to the scpecified format.

Parameters:
fmt the desired format
SEXP_t* probe_obj_creat ( const char *  name,
SEXP_t attrs,
  ... 
)

Create a new object consisting of a name, optional attributes argument and an arbitrary number of entities.

Every entity is a triple: const char *name - name of the new entity SEXP_t attrs - optional list of entity attributes in a sexp, can be NULL SEXP_t val - value of the new entity in a sexp This function increments its SEXP_t arguments' reference count.

Parameters:
name mandatory name argument
attrs optional object's attributes argument
... arbitrary number of entity arguments
SEXP_t* probe_obj_getattrval ( const SEXP_t obj,
const char *  name 
)

Get the value of an object's attribute.

Parameters:
obj the queried object
name the name of the attribute
SEXP_t* probe_obj_getent ( const SEXP_t obj,
const char *  name,
uint32_t  n 
)

Get an entity from an object.

Parameters:
obj the queried object
name the name of the entity
n select the n-th occurence of an entity with the specified name
SEXP_t* probe_obj_getentval ( const SEXP_t obj,
const char *  name,
uint32_t  n 
)

Get the value of an object's entity.

The function respects the var_ref attribute and returns the currently selected value.

Parameters:
obj the queried object
name the name of the entity
n select the n-th occurence of an entity with the specified name
int probe_obj_getentvals ( const SEXP_t obj,
const char *  name,
uint32_t  n,
SEXP_t **  res 
)

Get the list of values of an object's entity.

If the entity uses var_ref, there can be more than one value.

Parameters:
obj the queried object
name the name of the entity
n select the n-th occurence of an entity with the specified name
res the resulting value list is stored in this argument
Returns:
number of values in the list stored in the res argument
char* probe_obj_getname ( const SEXP_t obj  ) 

Get the name of an object.

Parameters:
obj the queried object
size_t probe_obj_getname_r ( const SEXP_t obj,
char *  buffer,
size_t  buflen 
)

Get the name of an object.

The name is stored in the provided buffer.

Parameters:
obj the queried object
buffer the buffer to store the name in
buflen the length of the buffer
SEXP_t* probe_obj_new ( const char *  name,
SEXP_t attrs 
)

Create a new object with just a name and optional attributes argument.

This function increments its SEXP_t argument's reference count.

Parameters:
name object's name
attrs optional attributes argument
int probe_obj_setstatus ( SEXP_t obj,
oval_syschar_status_t  status 
)

Set objects's status.

Parameters:
obj the object to be modified
status the new status
int probe_objent_setstatus ( SEXP_t obj,
const char *  name,
uint32_t  n,
oval_syschar_status_t  status 
)

Set status of an object's entity.

Parameters:
obj the object to be modified
name the name of the entity
n select the n-th occurence of an entity with the specified name
status the new status

Generated on 24 Mar 2010 for Open SCAP Library by  doxygen 1.6.1