state_file
struct state_file sf;
struct state_file sf;
static int _dev_file_name(struct state_file *, devmap_t *);
_dev_file_name(struct state_file *sfp, devmap_t *dm)
struct state_file sf;
char state_file[MAXPATHLEN+SM_MAXPATHLEN];
(void) sprintf(state_file, "%s/statmon/state", path_name[i]);
if ((fp_tmp = fopen(state_file, "r+")) == NULL) {
if ((fp_tmp = fopen(state_file, "w+")) == NULL) {
state_file);
(void) chmod(state_file, 0644);
"statd: %s: file empty\n", state_file);
(void) sprintf(state_file, "%s/statmon/state", path_name[i]);
if ((fp_tmp = fopen(state_file, "r+")) == NULL) {
if ((fp_tmp = fopen(state_file, "w+")) == NULL) {
"can't open %s: %m", state_file);
(void) chmod(state_file, 0644);
"statd: %s: fsync failed\n", state_file);
if (script_ps_statefd.state_file) {
statefd->state_file = (state_file_t *)mmap(NULL,
if (statefd->state_file == MAP_FAILED) {
if (statefd->state_file->version != version) {
(void) munmap((void *)statefd->state_file,
statefd->state_file = NULL;
statefd->state_file = NULL;
if (statefd->state_file) {
statefd->state_file->max_elements;
(void) munmap((void *)statefd->state_file, size);
statefd->state_file = NULL;
if (statefd->state_file)
max_elements += statefd->state_file->max_elements;
statefd->state_file = (state_file_t *)mmap(NULL, size,
if (statefd->state_file == MAP_FAILED) {
statefd->index = statefd->state_file->max_elements;
statefd->state_file->max_elements = max_elements;
statefd->state_file->version = statefd->version;
if (statefd->state_file &&
(index < statefd->state_file->max_elements)) {
ptr = (char *)(statefd->state_file);
if (statefd->state_file) {
for (i = 0; i < statefd->state_file->max_elements; i++) {
if (statefd->index >= statefd->state_file->max_elements)
if (statefd->state_file == NULL ||
i == statefd->state_file->max_elements) {
if (statefd->index >= statefd->state_file->max_elements)
state_file_t *state_file;