libexplain  1.4.D001
Functions
libexplain/buffer/errno/shmctl.c File Reference
#include <libexplain/ac/errno.h>
#include <libexplain/ac/string.h>
#include <libexplain/buffer/dac.h>
#include <libexplain/buffer/eacces.h>
#include <libexplain/buffer/efault.h>
#include <libexplain/buffer/einval.h>
#include <libexplain/buffer/enomem.h>
#include <libexplain/buffer/eoverflow.h>
#include <libexplain/buffer/eperm.h>
#include <libexplain/buffer/errno/generic.h>
#include <libexplain/buffer/errno/shmctl.h>
#include <libexplain/buffer/gettext.h>
#include <libexplain/buffer/int.h>
#include <libexplain/buffer/is_the_null_pointer.h>
#include <libexplain/buffer/pointer.h>
#include <libexplain/buffer/shmctl_command.h>
#include <libexplain/buffer/shmid_ds.h>
#include <libexplain/buffer/shm_info.h>
#include <libexplain/buffer/shminfo.h>
#include <libexplain/explanation.h>
#include <libexplain/translate.h>

Go to the source code of this file.

Functions

static int wrap_shmctl (int shmid, int cmd, struct shmid_ds *data)
static void explain_buffer_errno_shmctl_system_call (explain_string_buffer_t *sb, int errnum, int shmid, int command, struct shmid_ds *data)
void explain_buffer_errno_shmctl_explanation (explain_string_buffer_t *sb, int errnum, const char *syscall_name, int shmid, int command, struct shmid_ds *data)
void explain_buffer_errno_shmctl (explain_string_buffer_t *sb, int errnum, int shmid, int command, struct shmid_ds *data)

Function Documentation

void explain_buffer_errno_shmctl ( explain_string_buffer_t sb,
int  errnum,
int  shmid,
int  command,
struct shmid_ds *  data 
)

The explain_buffer_errno_shmctl function is used to obtain an explanation of an error returned by the shmctl(2) system call. The least the message will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail.

Parameters:
sbThe string buffer to print the message into. If a suitable buffer is specified, this function is thread safe.
errnumThe error value to be decoded, usually obtained from the errno global variable just before this function is called. This is necessary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno.
shmidThe original shmid, exactly as passed to the shmctl(2) system call.
commandThe original command, exactly as passed to the shmctl(2) system call.
dataThe original data, exactly as passed to the shmctl(2) system call.

Definition at line 233 of file shmctl.c.

void explain_buffer_errno_shmctl_explanation ( explain_string_buffer_t sb,
int  errnum,
const char *  syscall_name,
int  shmid,
int  command,
struct shmid_ds *  data 
)

The explain_buffer_errno_shmctl_explanation function is used to obtain the explanation (the part after "because") of an error returned by the shmctl(2) system call (and similar).

Parameters:
sbThe string buffer to print the message into. If a suitable buffer is specified, this function is thread safe.
errnumThe error value to be decoded, usually obtained from the errno global variable just before this function is called. This is necessary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno.
syscall_nameThe name of the offending system call.
shmidThe original shmid, exactly as passed to the shmctl(2) system call.
commandThe original command, exactly as passed to the shmctl(2) system call.
dataThe original data, exactly as passed to the shmctl(2) system call.

Definition at line 110 of file shmctl.c.

static void explain_buffer_errno_shmctl_system_call ( explain_string_buffer_t sb,
int  errnum,
int  shmid,
int  command,
struct shmid_ds *  data 
) [static]

Definition at line 63 of file shmctl.c.

static int wrap_shmctl ( int  shmid,
int  cmd,
struct shmid_ds *  data 
) [static]

Definition at line 44 of file shmctl.c.