1.7. Data Definitions for libSM

This section defines global identifiers and their values that are associated with interfaces contained in libSM. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content.

These definitions are intended to supplement those provided in the referenced underlying specifications.

This specification uses ISO/IEC 9899 C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

1.7.1. X11/SM/SMlib.h

typedef IcePointer SmPointer;
typedef struct _SmcConn *SmcConn;
typedef struct _SmsConn *SmsConn;

typedef struct
  int length;
  SmPointer value;
typedef struct
  char *name;
  char *type;
  int num_vals;
  SmPropValue *vals;

typedef enum
  SmcClosedNow, SmcClosedASAP, SmcConnectionInUse

typedef void (*SmcSaveYourselfPhase2Proc) (void);
typedef void (*SmcInteractProc) (void);
typedef void (*SmcDieProc) (void);
typedef void (*SmcShutdownCancelledProc) (void);
typedef void (*SmcSaveCompleteProc) (void);
typedef void (*SmcPropReplyProc) (void);

typedef struct
  SmcShutdownCancelledProc callback;
  SmPointer client_data;

typedef void (*SmsSetPropertiesProc) (void);
typedef void (*SmsDeletePropertiesProc) (void);
typedef void (*SmsGetPropertiesProc) (void);

typedef struct
  SmsGetPropertiesProc callback;
  SmPointer manager_data;

typedef int (*SmsNewClientProc) (void);

typedef void (*SmcErrorHandler) (void);
typedef void (*SmsErrorHandler) (void);