Implementation internals

various functions commmon to all probing modules More...


Modules

 Hardware abstraction (HAL) information
 Bus scanning code
 Device handling
 Information gathering
 Hardware DB (HDDB)
 Hardware DB functions.
 Hardware scan console output
 Hardware scan console output functions.
 Internal utilities
 Internal utility functions.
 UDI manual hardware
 Manual hardware information functions (/var/lib/hardware/udi/).

Data Structures

struct  disk_s
struct  s_mod_names
struct  s_pr_flags

Defines

#define u64   uint64_t
#define BLKSSZGET   _IO(0x12,104)
#define INT_CRC(a, b)   crc64(&a, &hd->b, sizeof hd->b);
#define STR_CRC(a, b)   if(hd->b) crc64(&a, hd->b, strlen(hd->b) + 1);

Typedefs

typedef disk_s disk_t

Functions

static struct s_pr_flags * get_pr_flags (enum probe_feature feature)
static void fix_probe_features (hd_data_t *hd_data)
static void set_probe_feature (hd_data_t *hd_data, enum probe_feature feature, unsigned val)
static void free_old_hd_entries (hd_data_t *hd_data)
static hd_t * free_hd_entry (hd_t *hd)
static hd_t * add_hd_entry2 (hd_t **hd, hd_t *new_hd)
static void timeout_alarm_handler (int signal)
static void get_probe_env (hd_data_t *hd_data)
static void hd_scan_xtra (hd_data_t *hd_data)
static hd_t * hd_get_device_by_id (hd_data_t *hd_data, char *id)
static int has_item (hd_hw_item_t *items, hd_hw_item_t item)
static int has_hw_class (hd_t *hd, hd_hw_item_t *items)
static void hd_scan_with_hal (hd_data_t *hd_data)
static void hd_scan_no_hal (hd_data_t *hd_data)
static void test_read_block0_open (void *arg)
static void get_kernel_version (hd_data_t *hd_data)
static int is_modem (hd_data_t *hd_data, hd_t *hd)
static int is_audio (hd_data_t *hd_data, hd_t *hd)
static int is_pppoe (hd_data_t *hd_data, hd_t *hd)
static void assign_hw_class (hd_data_t *hd_data, hd_t *hd)
static void short_vendor (char *vendor)
static void create_model_name (hd_data_t *hd_data, hd_t *hd)
static void sigchld_handler (int)
static char * hd_shm_add_str (hd_data_t *hd_data, char *str)
static str_list_t * hd_shm_add_str_list (hd_data_t *hd_data, str_list_t *sl)
static hd_udevinfo_t * hd_free_udevinfo (hd_udevinfo_t *ui)
static hd_sysfsdrv_t * hd_free_sysfsdrv (hd_sysfsdrv_t *sf)
void hd_set_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
void hd_clear_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
int hd_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
void hd_set_probe_feature_hw (hd_data_t *hd_data, hd_hw_item_t item)
hd_data_t * hd_free_hd_data (hd_data_t *hd_data)
 Free all data.
hal_prop_t * hd_free_hal_properties (hal_prop_t *prop)
hal_device_t * hd_free_hal_devices (hal_device_t *dev)
driver_info_t * free_driver_info (driver_info_t *di)
int exists_hd_entry (hd_data_t *hd_data, hd_t *old_hd, hd_t *hd_ex)
hd_t * hd_free_hd_list (hd_t *hd)
 Free hardware items returned by e.g. hd_list().
hd_detail_t * free_hd_detail (hd_detail_t *d)
misc_t * free_misc (misc_t *m)
scsi_t * free_scsi (scsi_t *scsi, int free_all)
hd_manual_t * hd_free_manual (hd_manual_t *manual)
void * new_mem (size_t size)
void * resize_mem (void *p, size_t n)
void * add_mem (void *p, size_t elem_size, size_t n)
char * new_str (const char *s)
void * free_mem (void *p)
void join_res_io (hd_res_t **res1, hd_res_t *res2)
void join_res_irq (hd_res_t **res1, hd_res_t *res2)
void join_res_dma (hd_res_t **res1, hd_res_t *res2)
int have_common_res (hd_res_t *res1, hd_res_t *res2)
hd_res_t * free_res_list (hd_res_t *res)
hd_res_t * add_res_entry (hd_res_t **res, hd_res_t *new_res)
hd_t * add_hd_entry (hd_data_t *hd_data, unsigned line, unsigned count)
void hd_scan (hd_data_t *hd_data)
 the actual hardware scan
char * isa_id2str (unsigned id)
char * eisa_vendor_str (unsigned v)
unsigned name2eisa_id (char *s)
char * canon_str (char *s, int len)
int hex (char *s, int n)
int str2float (char *s, int n)
char * float2str (int f, int n)
hd_t * hd_get_device_by_idx (hd_data_t *hd_data, unsigned idx)
char * mod_name_by_idx (unsigned idx)
void str_printf (char **buf, int offset, char *format,...)
void hexdump (char **buf, int with_ascii, unsigned data_len, unsigned char *data)
str_list_t * read_file (char *file_name, unsigned start_line, unsigned lines)
str_list_t * read_dir (char *dir_name, int type)
char * hd_read_symlink (char *link_name)
char * hd_read_sysfs_link (char *base_dir, char *link_name)
void progress (hd_data_t *hd_data, unsigned pos, unsigned count, char *msg)
enum probe_feature hd_probe_feature_by_name (char *name)
char * hd_probe_feature_by_value (enum probe_feature feature)
void remove_hd_entries (hd_data_t *hd_data)
void remove_tagged_hd_entries (hd_data_t *hd_data)
int hd_module_is_active (hd_data_t *hd_data, char *mod)
int hd_has_pcmcia (hd_data_t *hd_data)
int hd_apm_enabled (hd_data_t *hd_data)
int hd_usb_support (hd_data_t *hd_data)
int hd_smp_support (hd_data_t *hd_data)
int hd_color (hd_data_t *hd_data)
int hd_mac_color (hd_data_t *hd_data)
unsigned hd_display_adapter (hd_data_t *hd_data)
enum cpu_arch hd_cpu_arch (hd_data_t *hd_data)
enum boot_arch hd_boot_arch (hd_data_t *hd_data)
int hd_is_uml (hd_data_t *hd_data)
int hd_is_sgi_altix (hd_data_t *hd_data)
int hd_is_iseries (hd_data_t *hd_data)
void hd_copy (hd_t *dst, hd_t *src)
hd_t * hd_list (hd_data_t *hd_data, hd_hw_item_t item, int rescan, hd_t *hd_old)
hd_t * hd_list_with_status (hd_data_t *hd_data, hd_hw_item_t item, hd_status_t status)
hd_t * hd_list2 (hd_data_t *hd_data, hd_hw_item_t *items, int rescan)
hd_t * hd_list_with_status2 (hd_data_t *hd_data, hd_hw_item_t *items, hd_status_t status)
hd_t * hd_base_class_list (hd_data_t *hd_data, unsigned base_class)
hd_t * hd_sub_class_list (hd_data_t *hd_data, unsigned base_class, unsigned sub_class)
hd_t * hd_bus_list (hd_data_t *hd_data, unsigned bus)
const char * hd_busid_to_hwcfg (int busid)
int hd_timeout (void(*func)(void *), void *arg, int timeout)
str_list_t * read_kmods (hd_data_t *hd_data)
str_list_t * get_cmdline (hd_data_t *hd_data, char *key)
char * get_cmd_param (hd_data_t *hd_data, int field)
unsigned get_disk_crc (unsigned char *data, unsigned len)
disk_t * add_disk_entry (disk_t **dl, disk_t *new_dl)
disk_t * free_disk_list (disk_t *dl)
int dev_name_duplicate (disk_t *dl, char *dev_name)
unsigned hd_boot_disk (hd_data_t *hd_data, int *matches)
void update_irq_usage (hd_data_t *hd_data)
int run_cmd (hd_data_t *hd_data, char *cmd)
int probe_module (hd_data_t *hd_data, char *module)
int load_module_with_params (hd_data_t *hd_data, char *module, char *params)
int load_module (hd_data_t *hd_data, char *module)
int unload_module (hd_data_t *hd_data, char *module)
int cmp_hd (hd_t *hd1, hd_t *hd2)
unsigned has_something_attached (hd_data_t *hd_data, hd_t *hd)
void crc64 (uint64_t *id, void *p, int len)
char * numid2str (uint64_t id, int len)
void hd_add_old_id (hd_t *hd)
void hd_add_id (hd_data_t *hd_data, hd_t *hd)
devtree_t * free_devtree (hd_data_t *hd_data)
unsigned char * read_block0 (hd_data_t *hd_data, char *dev, int *timeout)
char * vend_id2str (unsigned vend)
int hd_change_config_status (hd_data_t *hd_data, const char *id, hd_status_t status, const char *config_string)
int hd_change_status (const char *id, hd_status_t status, const char *config_string)
int hd_getdisksize (hd_data_t *hd_data, char *dev, int fd, hd_res_t **geo, hd_res_t **size)
str_list_t * hd_split (char del, const char *str)
char * hd_join (char *del, str_list_t *str)
int is_pcmcia_ctrl (hd_data_t *hd_data, hd_t *hd)
void hd_set_hw_class (hd_t *hd, hd_hw_item_t hw_class)
int hd_is_hw_class (hd_t *hd, hd_hw_item_t hw_class)
void hd_fork (hd_data_t *hd_data, int timeout, int total_timeout)
void hd_fork_done (hd_data_t *hd_data)
void hd_shm_init (hd_data_t *hd_data)
void hd_shm_clean (hd_data_t *hd_data)
void hd_shm_done (hd_data_t *hd_data)
void * hd_shm_add (hd_data_t *hd_data, void *ptr, unsigned len)
int hd_is_shm_ptr (hd_data_t *hd_data, void *ptr)
void hd_move_to_shm (hd_data_t *hd_data)
void read_udevinfo (hd_data_t *hd_data)
char * hd_version ()
hd_t * hd_find_sysfs_id (hd_data_t *hd_data, char *id)
void hd_sysfs_driver_list (hd_data_t *hd_data)
int hd_report_this (hd_data_t *hd_data, hd_t *hd)
str_list_t * hd_module_list (hd_data_t *hd_data, unsigned id)
int hd_read_mmap (hd_data_t *hd_data, char *name, unsigned char *buf, off_t start, unsigned size)
char * hd_get_hddb_dir ()
char * hd_get_hddb_path (char *sub)
int hd_attr_uint (char *attr, uint64_t *u, int base)
str_list_t * hd_attr_list (char *str)
char * hd_sysfs_id (char *path)
char * hd_sysfs_name2_dev (char *str)
char * hd_sysfs_dev2_name (char *str)
char * get_sysfs_attr (const char *bus, const char *device, const char *attr)
char * get_sysfs_attr_by_path (const char *path, const char *attr)
int hd_mod_cmp (char *str1, char *str2)
str_list_t * s_str_list_t::search_str_list (str_list_t *sl, char *str)
 Search a string list for a string.
str_list_t * s_str_list_t::add_str_list (str_list_t **sl, char *str)
 Add a string to a string list.
str_list_t * s_str_list_t::free_str_list (str_list_t *list)
 Free the memory allocated by a string list.
str_list_t * s_str_list_t::reverse_str_list (str_list_t *list)
 Reverse string list.

Variables

static pid_t child_id
static volatile pid_t child
static struct s_mod_names pr_modules []
static struct s_pr_flags pr_flags []

Detailed Description

various functions commmon to all probing modules


Define Documentation

#define BLKSSZGET   _IO(0x12,104)

#define INT_CRC ( a,
b   )     crc64(&a, &hd->b, sizeof hd->b);

#define STR_CRC ( a,
b   )     if(hd->b) crc64(&a, hd->b, strlen(hd->b) + 1);

#define u64   uint64_t


Typedef Documentation

typedef struct disk_s disk_t


Function Documentation

disk_t* add_disk_entry ( disk_t **  dl,
disk_t *  new_dl 
)

hd_t* add_hd_entry ( hd_data_t *  hd_data,
unsigned  line,
unsigned  count 
)

hd_t * add_hd_entry2 ( hd_t **  hd,
hd_t *  new_hd 
) [static]

void* add_mem ( void *  p,
size_t  elem_size,
size_t  n 
)

hd_res_t* add_res_entry ( hd_res_t **  res,
hd_res_t *  new_res 
)

str_list_t * add_str_list ( str_list_t **  sl,
char *  str 
) [related, inherited]

Add a string to a string list.

The new string (str) will be *copied*!

void assign_hw_class ( hd_data_t *  hd_data,
hd_t *  hd 
) [static]

char* canon_str ( char *  s,
int  len 
)

int cmp_hd ( hd_t *  hd1,
hd_t *  hd2 
)

void crc64 ( uint64_t *  id,
void *  p,
int  len 
)

void create_model_name ( hd_data_t *  hd_data,
hd_t *  hd 
) [static]

int dev_name_duplicate ( disk_t *  dl,
char *  dev_name 
)

char* eisa_vendor_str ( unsigned  v  ) 

int exists_hd_entry ( hd_data_t *  hd_data,
hd_t *  old_hd,
hd_t *  hd_ex 
)

void fix_probe_features ( hd_data_t *  hd_data  )  [static]

char* float2str ( int  f,
int  n 
)

devtree_t* free_devtree ( hd_data_t *  hd_data  ) 

disk_t* free_disk_list ( disk_t *  dl  ) 

driver_info_t* free_driver_info ( driver_info_t *  di  ) 

hd_detail_t* free_hd_detail ( hd_detail_t *  d  ) 

hd_t * free_hd_entry ( hd_t *  hd  )  [static]

void* free_mem ( void *  p  ) 

misc_t* free_misc ( misc_t *  m  ) 

void free_old_hd_entries ( hd_data_t *  hd_data  )  [static]

hd_res_t* free_res_list ( hd_res_t *  res  ) 

scsi_t* free_scsi ( scsi_t *  scsi,
int  free_all 
)

str_list_t * free_str_list ( str_list_t *  list  )  [related, inherited]

Free the memory allocated by a string list.

char* get_cmd_param ( hd_data_t *  hd_data,
int  field 
)

str_list_t* get_cmdline ( hd_data_t *  hd_data,
char *  key 
)

unsigned get_disk_crc ( unsigned char *  data,
unsigned  len 
)

void get_kernel_version ( hd_data_t *  hd_data  )  [static]

struct s_pr_flags * get_pr_flags ( enum probe_feature  feature  )  [static]

void get_probe_env ( hd_data_t *  hd_data  )  [static]

char* get_sysfs_attr ( const char *  bus,
const char *  device,
const char *  attr 
)

char* get_sysfs_attr_by_path ( const char *  path,
const char *  attr 
)

int has_hw_class ( hd_t *  hd,
hd_hw_item_t *  items 
) [static]

int has_item ( hd_hw_item_t *  items,
hd_hw_item_t  item 
) [static]

unsigned has_something_attached ( hd_data_t *  hd_data,
hd_t *  hd 
)

int have_common_res ( hd_res_t *  res1,
hd_res_t *  res2 
)

void hd_add_id ( hd_data_t *  hd_data,
hd_t *  hd 
)

void hd_add_old_id ( hd_t *  hd  ) 

int hd_apm_enabled ( hd_data_t *  hd_data  ) 

str_list_t* hd_attr_list ( char *  str  ) 

int hd_attr_uint ( char *  attr,
uint64_t *  u,
int  base 
)

hd_t* hd_base_class_list ( hd_data_t *  hd_data,
unsigned  base_class 
)

enum boot_arch hd_boot_arch ( hd_data_t *  hd_data  ) 

unsigned hd_boot_disk ( hd_data_t *  hd_data,
int *  matches 
)

hd_t* hd_bus_list ( hd_data_t *  hd_data,
unsigned  bus 
)

const char* hd_busid_to_hwcfg ( int  busid  ) 

int hd_change_config_status ( hd_data_t *  hd_data,
const char *  id,
hd_status_t  status,
const char *  config_string 
)

int hd_change_status ( const char *  id,
hd_status_t  status,
const char *  config_string 
)

void hd_clear_probe_feature ( hd_data_t *  hd_data,
enum probe_feature  feature 
)

int hd_color ( hd_data_t *  hd_data  ) 

void hd_copy ( hd_t *  dst,
hd_t *  src 
)

enum cpu_arch hd_cpu_arch ( hd_data_t *  hd_data  ) 

unsigned hd_display_adapter ( hd_data_t *  hd_data  ) 

hd_t* hd_find_sysfs_id ( hd_data_t *  hd_data,
char *  id 
)

void hd_fork ( hd_data_t *  hd_data,
int  timeout,
int  total_timeout 
)

void hd_fork_done ( hd_data_t *  hd_data  ) 

hal_device_t* hd_free_hal_devices ( hal_device_t *  dev  ) 

hal_prop_t* hd_free_hal_properties ( hal_prop_t *  prop  ) 

hd_data_t* hd_free_hd_data ( hd_data_t *  hd_data  ) 

Free all data.

hd_t* hd_free_hd_list ( hd_t *  hd  ) 

Free hardware items returned by e.g. hd_list().

Note:
This may not free it.

hd_manual_t* hd_free_manual ( hd_manual_t *  manual  ) 

hd_sysfsdrv_t * hd_free_sysfsdrv ( hd_sysfsdrv_t *  sf  )  [static]

hd_udevinfo_t * hd_free_udevinfo ( hd_udevinfo_t *  ui  )  [static]

hd_t * hd_get_device_by_id ( hd_data_t *  hd_data,
char *  id 
) [static]

hd_t* hd_get_device_by_idx ( hd_data_t *  hd_data,
unsigned  idx 
)

char* hd_get_hddb_dir ( void   ) 

char* hd_get_hddb_path ( char *  sub  ) 

int hd_getdisksize ( hd_data_t *  hd_data,
char *  dev,
int  fd,
hd_res_t **  geo,
hd_res_t **  size 
)

int hd_has_pcmcia ( hd_data_t *  hd_data  ) 

int hd_is_hw_class ( hd_t *  hd,
hd_hw_item_t  hw_class 
)

int hd_is_iseries ( hd_data_t *  hd_data  ) 

int hd_is_sgi_altix ( hd_data_t *  hd_data  ) 

int hd_is_shm_ptr ( hd_data_t *  hd_data,
void *  ptr 
)

int hd_is_uml ( hd_data_t *  hd_data  ) 

char* hd_join ( char *  del,
str_list_t *  str 
)

hd_t* hd_list ( hd_data_t *  hd_data,
hd_hw_item_t  item,
int  rescan,
hd_t *  hd_old 
)

hd_t* hd_list2 ( hd_data_t *  hd_data,
hd_hw_item_t *  items,
int  rescan 
)

hd_t* hd_list_with_status ( hd_data_t *  hd_data,
hd_hw_item_t  item,
hd_status_t  status 
)

hd_t* hd_list_with_status2 ( hd_data_t *  hd_data,
hd_hw_item_t *  items,
hd_status_t  status 
)

int hd_mac_color ( hd_data_t *  hd_data  ) 

int hd_mod_cmp ( char *  str1,
char *  str2 
)

int hd_module_is_active ( hd_data_t *  hd_data,
char *  mod 
)

str_list_t* hd_module_list ( hd_data_t *  hd_data,
unsigned  id 
)

void hd_move_to_shm ( hd_data_t *  hd_data  ) 

int hd_probe_feature ( hd_data_t *  hd_data,
enum probe_feature  feature 
)

enum probe_feature hd_probe_feature_by_name ( char *  name  ) 

char* hd_probe_feature_by_value ( enum probe_feature  feature  ) 

int hd_read_mmap ( hd_data_t *  hd_data,
char *  name,
unsigned char *  buf,
off_t  start,
unsigned  size 
)

char* hd_read_symlink ( char *  link_name  ) 

char* hd_read_sysfs_link ( char *  base_dir,
char *  link_name 
)

int hd_report_this ( hd_data_t *  hd_data,
hd_t *  hd 
)

void hd_scan ( hd_data_t *  hd_data  ) 

the actual hardware scan

void hd_scan_no_hal ( hd_data_t *  hd_data  )  [static]

void hd_scan_with_hal ( hd_data_t *  hd_data  )  [static]

void hd_scan_xtra ( hd_data_t *  hd_data  )  [static]

void hd_set_hw_class ( hd_t *  hd,
hd_hw_item_t  hw_class 
)

void hd_set_probe_feature ( hd_data_t *  hd_data,
enum probe_feature  feature 
)

void hd_set_probe_feature_hw ( hd_data_t *  hd_data,
hd_hw_item_t  item 
)

void* hd_shm_add ( hd_data_t *  hd_data,
void *  ptr,
unsigned  len 
)

char * hd_shm_add_str ( hd_data_t *  hd_data,
char *  str 
) [static]

str_list_t * hd_shm_add_str_list ( hd_data_t *  hd_data,
str_list_t *  sl 
) [static]

void hd_shm_clean ( hd_data_t *  hd_data  ) 

void hd_shm_done ( hd_data_t *  hd_data  ) 

void hd_shm_init ( hd_data_t *  hd_data  ) 

int hd_smp_support ( hd_data_t *  hd_data  ) 

str_list_t* hd_split ( char  del,
const char *  str 
)

hd_t* hd_sub_class_list ( hd_data_t *  hd_data,
unsigned  base_class,
unsigned  sub_class 
)

char* hd_sysfs_dev2_name ( char *  str  ) 

void hd_sysfs_driver_list ( hd_data_t *  hd_data  ) 

char* hd_sysfs_id ( char *  path  ) 

char* hd_sysfs_name2_dev ( char *  str  ) 

int hd_timeout ( void(*)(void *)  func,
void *  arg,
int  timeout 
)

int hd_usb_support ( hd_data_t *  hd_data  ) 

char* hd_version ( void   ) 

int hex ( char *  s,
int  n 
)

void hexdump ( char **  buf,
int  with_ascii,
unsigned  data_len,
unsigned char *  data 
)

int is_audio ( hd_data_t *  hd_data,
hd_t *  hd 
) [static]

int is_modem ( hd_data_t *  hd_data,
hd_t *  hd 
) [static]

int is_pcmcia_ctrl ( hd_data_t *  hd_data,
hd_t *  hd 
)

int is_pppoe ( hd_data_t *  hd_data,
hd_t *  hd 
) [static]

char* isa_id2str ( unsigned  id  ) 

void join_res_dma ( hd_res_t **  res1,
hd_res_t *  res2 
)

void join_res_io ( hd_res_t **  res1,
hd_res_t *  res2 
)

void join_res_irq ( hd_res_t **  res1,
hd_res_t *  res2 
)

int load_module ( hd_data_t *  hd_data,
char *  module 
)

int load_module_with_params ( hd_data_t *  hd_data,
char *  module,
char *  params 
)

char* mod_name_by_idx ( unsigned  idx  ) 

unsigned name2eisa_id ( char *  s  ) 

void* new_mem ( size_t  size  ) 

char* new_str ( const char *  s  ) 

char* numid2str ( uint64_t  id,
int  len 
)

int probe_module ( hd_data_t *  hd_data,
char *  module 
)

void progress ( hd_data_t *  hd_data,
unsigned  pos,
unsigned  count,
char *  msg 
)

unsigned char* read_block0 ( hd_data_t *  hd_data,
char *  dev,
int *  timeout 
)

str_list_t* read_dir ( char *  dir_name,
int  type 
)

str_list_t* read_file ( char *  file_name,
unsigned  start_line,
unsigned  lines 
)

str_list_t* read_kmods ( hd_data_t *  hd_data  ) 

void read_udevinfo ( hd_data_t *  hd_data  ) 

void remove_hd_entries ( hd_data_t *  hd_data  ) 

void remove_tagged_hd_entries ( hd_data_t *  hd_data  ) 

void* resize_mem ( void *  p,
size_t  n 
)

str_list_t * reverse_str_list ( str_list_t *  list  )  [related, inherited]

Reverse string list.

int run_cmd ( hd_data_t *  hd_data,
char *  cmd 
)

str_list_t * search_str_list ( str_list_t *  sl,
char *  str 
) [related, inherited]

Search a string list for a string.

void set_probe_feature ( hd_data_t *  hd_data,
enum probe_feature  feature,
unsigned  val 
) [static]

void short_vendor ( char *  vendor  )  [static]

void sigchld_handler ( int   )  [static]

int str2float ( char *  s,
int  n 
)

void str_printf ( char **  buf,
int  offset,
char *  format,
  ... 
)

void test_read_block0_open ( void *  arg  )  [static]

void timeout_alarm_handler ( int  signal  )  [static]

int unload_module ( hd_data_t *  hd_data,
char *  module 
)

void update_irq_usage ( hd_data_t *  hd_data  ) 

char* vend_id2str ( unsigned  vend  ) 


Variable Documentation

volatile pid_t child [static]

pid_t child_id [static]

struct s_pr_flags pr_flags[] [static]

struct s_mod_names pr_modules[] [static]