linux/drivers/staging/bcm/sort.c
<<
>>
Prefs
   1#include "headers.h"
   2#include <linux/sort.h>
   3
   4/*
   5 * File Name: sort.c
   6 *
   7 * Author: Beceem Communications Pvt. Ltd
   8 *
   9 * Abstract: This file contains the routines sorting the classification rules.
  10 *
  11 * Copyright (c) 2007 Beceem Communications Pvt. Ltd
  12 */
  13
  14static int compare_packet_info(void const *a, void const *b)
  15{
  16        struct bcm_packet_info const *pa = a;
  17        struct bcm_packet_info const *pb = b;
  18
  19        if (!pa->bValid || !pb->bValid)
  20                return 0;
  21
  22        return pa->u8TrafficPriority - pb->u8TrafficPriority;
  23}
  24
  25VOID SortPackInfo(struct bcm_mini_adapter *Adapter)
  26{
  27        BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG,
  28                        DBG_LVL_ALL, "<=======");
  29
  30        sort(Adapter->PackInfo, NO_OF_QUEUES, sizeof(struct bcm_packet_info),
  31                compare_packet_info, NULL);
  32}
  33
  34static int compare_classifiers(void const *a, void const *b)
  35{
  36        struct bcm_classifier_rule const *pa = a;
  37        struct bcm_classifier_rule const *pb = b;
  38
  39        if (!pa->bUsed || !pb->bUsed)
  40                return 0;
  41
  42        return pa->u8ClassifierRulePriority - pb->u8ClassifierRulePriority;
  43}
  44
  45VOID SortClassifiers(struct bcm_mini_adapter *Adapter)
  46{
  47        BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG,
  48                        DBG_LVL_ALL, "<=======");
  49
  50        sort(Adapter->astClassifierTable, MAX_CLASSIFIERS,
  51                sizeof(struct bcm_classifier_rule), compare_classifiers, NULL);
  52}
  53