ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/libstatgrab/process_stats.c
(Generate patch)

Comparing projects/libstatgrab/src/libstatgrab/process_stats.c (file contents):
Revision 1.65 by tdb, Wed Apr 7 21:08:40 2004 UTC vs.
Revision 1.66 by pajs, Thu Apr 8 11:26:42 2004 UTC

# Line 675 | Line 675 | sg_process_count *sg_get_process_count() {
675  
676          return &process_stat;
677   }
678 +
679 + int sg_compare_pid(const void *va, const void *vb) {
680 +        const sg_process_stats *a = (sg_process_stats *)va;
681 +        const sg_process_stats *b = (sg_process_stats *)vb;
682 +
683 +        if (a->pid < b->pid) {
684 +                return -1;
685 +        } else if (a->pid == b->pid) {
686 +                return 0;
687 +        } else {
688 +                return 1;
689 +        }
690 + }
691 +
692 + int sg_compare_uid(const void *va, const void *vb) {
693 +        const sg_process_stats *a = (sg_process_stats *)va;
694 +        const sg_process_stats *b = (sg_process_stats *)vb;
695 +
696 +        if (a->uid < b->uid) {
697 +                return -1;
698 +        } else if (a->uid == b->uid) {
699 +                return 0;
700 +        } else {
701 +                return 1;
702 +        }
703 + }
704 +
705 + int sg_compare_gid(const void *va, const void *vb) {
706 +        const sg_process_stats *a = (sg_process_stats *)va;
707 +        const sg_process_stats *b = (sg_process_stats *)vb;
708 +
709 +        if (a->gid < b->gid) {
710 +                return -1;
711 +        } else if (a->gid == b->gid) {
712 +                return 0;
713 +        } else {
714 +                return 1;
715 +        }
716 + }
717 +
718 + int sg_compare_size(const void *va, const void *vb) {
719 +        const sg_process_stats *a = (sg_process_stats *)va;
720 +        const sg_process_stats *b = (sg_process_stats *)vb;
721 +
722 +        if (a->proc_size < b->proc_size) {
723 +                return -1;
724 +        } else if (a->proc_size == b->proc_size) {
725 +                return 0;
726 +        } else {
727 +                return 1;
728 +        }
729 + }
730 +
731 + int sg_compare_res(const void *va, const void *vb) {
732 +        const sg_process_stats *a = (sg_process_stats *)va;
733 +        const sg_process_stats *b = (sg_process_stats *)vb;
734 +
735 +        if (a->proc_resident < b->proc_resident) {
736 +                return -1;
737 +        } else if (a->proc_resident == b->proc_resident) {
738 +                return 0;
739 +        } else {
740 +                return 1;
741 +        }
742 + }
743 +
744 + int sg_compare_cpu(const void *va, const void *vb) {
745 +        const sg_process_stats *a = (sg_process_stats *)va;
746 +        const sg_process_stats *b = (sg_process_stats *)vb;
747 +
748 +        if (a->cpu_percent < b->cpu_percent) {
749 +                return -1;
750 +        } else if (a->cpu_percent == b->cpu_percent) {
751 +                return 0;
752 +        } else {
753 +                return 1;
754 +        }
755 + }
756 +
757 + int sg_compare_time(const void *va, const void *vb) {
758 +        const sg_process_stats *a = (sg_process_stats *)va;
759 +        const sg_process_stats *b = (sg_process_stats *)vb;
760 +
761 +        if (a->time_spent < b->time_spent) {
762 +                return -1;
763 +        } else if (a->time_spent == b->time_spent) {
764 +                return 0;
765 +        } else {
766 +                return 1;
767 +        }
768 + }
769 +
770 + void sg_sort(sg_process_stats *ps, int num_ps, sg_sort_method sm){
771 +        int (*sortby_ptr)(const void *a, const void *b);
772 +
773 +        switch(sm){
774 +        case SG_PS_PID:
775 +                sortby_ptr = sg_compare_pid;
776 +                break;
777 +        case SG_PS_UID:
778 +                sortby_ptr = sg_compare_uid;
779 +                break;
780 +        case SG_PS_GID:
781 +                sortby_ptr = sg_compare_gid;
782 +                break;
783 +        case SG_PS_SIZE:
784 +                sortby_ptr = sg_compare_size;
785 +                break;
786 +        case SG_PS_RES:
787 +                sortby_ptr = sg_compare_res;
788 +                break;
789 +        case SG_PS_CPU:
790 +                sortby_ptr = sg_compare_cpu;
791 +                break;
792 +        case SG_PS_TIME:
793 +                sortby_ptr = sg_compare_time;
794 +                break;
795 +        }
796 +
797 +        qsort(ps, num_ps, sizeof(*ps), sortby_ptr);
798 +
799 +        return;
800 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines