Skip to content

Commit

Permalink
[SCSI] libosd: OSDv1 preliminary implementation
Browse files Browse the repository at this point in the history
Implementation of the most basic OSD functionality and
infrastructure. Mainly Format, Create/Remove Partition,
Create/Remove Object, and read/write.

- Add Makefile and Kbuild to compile libosd.ko
- osd_initiator.c Implementation file for osd_initiator.h
  and osd_sec.h APIs
- osd_debug.h - Some kprintf macro definitions

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Reviewed-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
  • Loading branch information
Boaz Harrosh authored and James Bottomley committed Mar 12, 2009
1 parent de258bf commit 02941a5
Show file tree
Hide file tree
Showing 4 changed files with 547 additions and 0 deletions.
32 changes: 32 additions & 0 deletions drivers/scsi/osd/Kbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#
# Kbuild for the OSD modules
#
# Copyright (C) 2008 Panasas Inc. All rights reserved.
#
# Authors:
# Boaz Harrosh <bharrosh@panasas.com>
# Benny Halevy <bhalevy@panasas.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
#

ifneq ($(OSD_INC),)
# we are built out-of-tree Kconfigure everything as on

CONFIG_SCSI_OSD_INITIATOR=m
ccflags-y += -DCONFIG_SCSI_OSD_INITIATOR -DCONFIG_SCSI_OSD_INITIATOR_MODULE

# Uncomment to turn debug on
# ccflags-y += -DCONFIG_SCSI_OSD_DEBUG

# if we are built out-of-tree and the hosting kernel has OSD headers
# then "ccflags-y +=" will not pick the out-off-tree headers. Only by doing
# this it will work. This might break in future kernels
LINUXINCLUDE := -I$(OSD_INC) $(LINUXINCLUDE)

endif

# libosd.ko - osd-initiator library
libosd-y := osd_initiator.o
obj-$(CONFIG_SCSI_OSD_INITIATOR) += libosd.o
37 changes: 37 additions & 0 deletions drivers/scsi/osd/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#
# Makefile for the OSD modules (out of tree)
#
# Copyright (C) 2008 Panasas Inc. All rights reserved.
#
# Authors:
# Boaz Harrosh <bharrosh@panasas.com>
# Benny Halevy <bhalevy@panasas.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
#
# This Makefile is used to call the kernel Makefile in case of an out-of-tree
# build.
# $KSRC should point to a Kernel source tree otherwise host's default is
# used. (eg. /lib/modules/`uname -r`/build)

# include path for out-of-tree Headers
OSD_INC ?= `pwd`/../../../include

# allow users to override these
# e.g. to compile for a kernel that you aren't currently running
KSRC ?= /lib/modules/$(shell uname -r)/build
KBUILD_OUTPUT ?=
ARCH ?=
V ?= 0

# this is the basic Kbuild out-of-tree invocation, with the M= option
KBUILD_BASE = +$(MAKE) -C $(KSRC) M=`pwd` KBUILD_OUTPUT=$(KBUILD_OUTPUT) ARCH=$(ARCH) V=$(V)

all: libosd

libosd: ;
$(KBUILD_BASE) OSD_INC=$(OSD_INC) modules

clean:
$(KBUILD_BASE) clean
30 changes: 30 additions & 0 deletions drivers/scsi/osd/osd_debug.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* osd_debug.h - Some kprintf macros
*
* Copyright (C) 2008 Panasas Inc. All rights reserved.
*
* Authors:
* Boaz Harrosh <bharrosh@panasas.com>
* Benny Halevy <bhalevy@panasas.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
*
*/
#ifndef __OSD_DEBUG_H__
#define __OSD_DEBUG_H__

#define OSD_ERR(fmt, a...) printk(KERN_ERR "osd: " fmt, ##a)
#define OSD_INFO(fmt, a...) printk(KERN_NOTICE "osd: " fmt, ##a)

#ifdef CONFIG_SCSI_OSD_DEBUG
#define OSD_DEBUG(fmt, a...) \
printk(KERN_NOTICE "osd @%s:%d: " fmt, __func__, __LINE__, ##a)
#else
#define OSD_DEBUG(fmt, a...) do {} while (0)
#endif

/* u64 has problems with printk this will cast it to unsigned long long */
#define _LLU(x) (unsigned long long)(x)

#endif /* ndef __OSD_DEBUG_H__ */
Loading

0 comments on commit 02941a5

Please sign in to comment.