moved to gitlab
[psensor-pkg-ubuntu.git] / src / lib / hdd_atasmart.c
diff --git a/src/lib/hdd_atasmart.c b/src/lib/hdd_atasmart.c
deleted file mode 100644 (file)
index 0fd7d5d..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2010-2014 jeanfi@gmail.com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-#define _LARGEFILE_SOURCE 1
-#include "config.h"
-
-#include <locale.h>
-#include <libintl.h>
-#define _(str) gettext(str)
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <atasmart.h>
-#include <linux/fs.h>
-
-#include <pio.h>
-#include <hdd.h>
-#include <plog.h>
-
-static const char *PROVIDER_NAME = "atasmart";
-
-static int filter_sd(const char *p)
-{
-       return strlen(p) == 8 && !strncmp(p, "/dev/sd", 7);
-}
-
-static struct psensor *
-create_sensor(char *id, char *name, SkDisk *disk, int values_max_length)
-{
-       struct psensor *s;
-       int t;
-
-       t = SENSOR_TYPE_ATASMART | SENSOR_TYPE_HDD | SENSOR_TYPE_TEMP;
-
-       s = psensor_create(id,
-                          strdup(name),
-                          strdup(_("Disk")),
-                          t,
-                          values_max_length);
-
-       s->disk = disk;
-
-       return s;
-}
-
-/*
- * Performs the same tests than sk_disk_open and outputs the result.
- */
-static void analyze_disk(const char *dname)
-{
-       int f;
-       struct stat st;
-       uint64_t size;
-
-       log_fct("Analyze %s", dname);
-
-       f = open(dname, O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC);
-
-       if (f < 0) {
-               log_fct("Could not open file %s: %s", dname, strerror(errno));
-               goto fail;
-       }
-
-       if (fstat(f, &st) < 0) {
-               log_fct("fstat fails %s: %s", dname, strerror(errno));
-               goto fail;
-       }
-
-       if (!S_ISBLK(st.st_mode)) {
-               log_fct("!S_ISBLK fails %s", dname);
-               goto fail;
-       }
-
-       size = (uint64_t)-1;
-       /* So, it's a block device. Let's make sure the ioctls work */
-       if (ioctl(f, BLKGETSIZE64, &size) < 0) {
-               log_fct("ioctl fails %s: %s", dname, strerror(errno));
-               goto fail;
-       }
-
-       if (size <= 0 || size == (uint64_t) -1) {
-               log_fct("ioctl wrong size %s: %ld", dname, size);
-               goto fail;
-       }
-
- fail:
-       close(f);
-}
-
-void
-atasmart_psensor_list_append(struct psensor ***sensors, int values_max_length)
-{
-       char **paths, **tmp, *id;
-       SkDisk *disk;
-       struct psensor *sensor;
-
-       log_fct_enter();
-
-       paths = dir_list("/dev", filter_sd);
-
-       tmp = paths;
-       while (*tmp) {
-               log_fct("Open %s", *tmp);
-
-               if (!sk_disk_open(*tmp, &disk)) {
-                       id = malloc(strlen(PROVIDER_NAME)
-                                   + 1
-                                   + strlen(*tmp)
-                                   + 1);
-                       sprintf(id, "%s %s", PROVIDER_NAME, *tmp);
-
-                       sensor = create_sensor(id,
-                                              *tmp,
-                                              disk,
-                                              values_max_length);
-
-                       psensor_list_append(sensors, sensor);
-               } else {
-                       log_err(_("%s: sk_disk_open() failure: %s."),
-                               PROVIDER_NAME,
-                               *tmp);
-                       analyze_disk(*tmp);
-               }
-
-               tmp++;
-       }
-
-       paths_free(paths);
-
-       log_fct_exit();
-}
-
-void atasmart_psensor_list_update(struct psensor **sensors)
-{
-       struct psensor **cur, *s;
-       uint64_t kelvin;
-       int ret;
-       double c;
-
-       cur = sensors;
-       while (*cur) {
-               s = *cur;
-               if (!(s->type & SENSOR_TYPE_REMOTE)
-                   && s->type & SENSOR_TYPE_ATASMART) {
-                       ret = sk_disk_smart_read_data(s->disk);
-
-                       if (!ret) {
-                               ret = sk_disk_smart_get_temperature(s->disk,
-                                                                   &kelvin);
-
-                               if (!ret) {
-                                       c = (kelvin - 273150) / 1000;
-                                       psensor_set_current_value(s, c);
-                                       log_fct("%s %.2f", s->id, c);
-                               }
-                       }
-               }
-
-               cur++;
-       }
-}