diff options
52 files changed, 3734 insertions, 95 deletions
diff --git a/conf/checksums.ini b/conf/checksums.ini index 12f0c99f4c..92f3c6faef 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -854,6 +854,10 @@ sha256=f2f80e2a62a039e9a1ffa0fdf58707b2d12b3ff33c56472b46bb6d53f45e083e md5=e81c2f0953aa60f8062c05a4673f2be0 sha256=cf153f10ba6312a8303ceb01bed834a2786d28aa89c7d73dba64714f691628f6 +[http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tar.bz2] +md5=245db9f1e0f09ab7e0faaa0cf7301011 +sha256=a1cdc4a8f6c1f947ea3b87d097af2db4371019bac941d92c3844124c5694328b + [http://jerakeen.org/files/PythonDaap-0.4.tar.gz] md5=f7672bfd563787a76fb7e9a43c062f18 sha256=5318946df77937e0b601c95a198790f9ba52d4afb4eb153480289350182bb739 @@ -4735,8 +4739,8 @@ md5=e23f236e94be4c429aa1ceac0f01544b sha256=3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639 [http://www.lartmaker.nl/lartware/port/devmem2.c] -md5=e23f236e94be4c429aa1ceac0f01544b -sha256=3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639 +md5=be12c0132a1ae118cbf5e79d98427c1d +sha256=ec382c90af3ef2f49695ff14a4d6521e58ac482c4e29d6c9ebca8768f699c191 [http://pknet.com/~joe/dgen-sdl-1.23.tar.gz] md5=b1896c1b21ddb152626aec2e8a157a3a @@ -11470,6 +11474,10 @@ sha256=25d45acf19e3acd09745df47581ac7a13e3694ee51fe4e642108f9f228cacca9 md5=a1d0aca33da380d6045c5c0e5002c09d sha256=9e4ab143828fefb3b67ce2bc3ad63a91cacc45d97161822915778683fb80343b +[http://ipython.scipy.org/dist/ipython-0.10.tar.gz] +md5=dd10cd1b622c16c1afca2239fcc0dfdf +sha256=60d602637dc5f078b083a4ca5ab64364ba816bd72439844012ed11a30f88228c + [http://ipython.scipy.org/dist/ipython-0.9.1.tar.gz] md5=8a1bd1a9be272f4ddf4de99e5c1ad0dc sha256=5540bc1a01f11ca66c3d7c31a43af670fd0f0044b8e38d142614872956548006 @@ -11974,6 +11982,10 @@ sha256=6a2efdfc757c518a8185f457799506086084b59498f53db37cfb6728008127e0 md5=481dfdef7273f2cc776c2637f481f017 sha256=27000ba4bc73a5977502b27d7036df24dd6ab94a1c33b8f5d6d54ba62772f0c7 +[http://kernel.org/pub/linux/libs/klibc/Testing/klibc-1.5.15.tar.bz2] +md5=db2152a8a03bd81e21a5f451f537ae3d +sha256=8b5334ef88b075f374b031695181b4302c3e5621bf2737a39fdf28262b0f80f4 + [http://downloads.sourceforge.net/klimt/klimt-src-0.6.1.zip] md5=d12f56384b4ccde11cd756db2b14065c sha256=48ae508d72e453e2a1f5748870362259786b475548c545feaec1aea71d2f8fdb diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 586bbc172a..7297f4710b 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -111,8 +111,8 @@ SRCREV_pn-libmokopanelui2 ?= "4568" SRCREV_pn-libmokoui2 ?= "4342" SRCREV_pn-libowl ?= "277" SRCREV_pn-librfid ?= "2094" +SRCREV_pn-libsynthesis ?= "70f0065aa3b085bdf059830f95e5b5766eecb0bb" SRCREV_pn-libw100 ?= "47" -SRCREV_pn-libowl ?= "277" SRCREV_pn-libxcalibrate ?= "209d83af61ed38a002c8096377deac292b3e396c" SRCREV_pn-libxosd ?= "627" SRCREV_pn-linux-bfin ?= "3758" @@ -146,6 +146,7 @@ SRCREV_pn-mplayer ?= "28346" SRCREV_pn-mplayer-maemo ?= "342" SRCREV_pn-multicat ?= "f894801916cc4d0e912e4553490dc215276c52a9" SRCREV_pn-multitap-pad ?= "373" +SRCREV_pn-mux ?= "72460e890dbb15edbf7dc193116be0dcf9794a8b" SRCREV_pn-navit ?= "1096" SRCREV_pn-neod ?= "4617" SRCREV_pn-netsurf ?= "3859" @@ -257,7 +258,7 @@ SRCREV_pn-vala-native ?= "6cf030120cd7f6a76a5d766d7420aea847e02cfd" SRCREV_pn-webkit-gtk ?= "45825" SRCREV_pn-wlan-ng-modules ?= "1859" SRCREV_pn-wlan-ng-utils ?= "1859" -SRCREV_pn-wmiconfig ?= "4522" +SRCREV_pn-wmiconfig ?= "5394" SRCREV_pn-xf86-video-glamo ?= "25c4b0e80e93e04e6f7d4b8bca6d007fb9de6da8" SRCREV_pn-xoo ?= "1971" SRCREV_pn-xserver-kdrive-glamo ?= "9b28d998424c77fbc057dd3a022ccbb122793a52" diff --git a/conf/distro/minimal-uclibc.conf b/conf/distro/minimal-uclibc.conf index 257d364292..f246bffa69 100644 --- a/conf/distro/minimal-uclibc.conf +++ b/conf/distro/minimal-uclibc.conf @@ -31,7 +31,7 @@ USE_NLS_glib-2.0 = "yes" USE_NLS_glib-2.0-native = "yes" USE_NLS_gcc-cross = "no" -PREFERRED_VERSION_uclibc = "0.9.30.1" -PREFERRED_VERSION_uclibc-initial = "0.9.30.1" +PREFERRED_VERSION_uclibc ?= "0.9.30.1" +PREFERRED_VERSION_uclibc-initial ?= "0.9.30.1" require conf/distro/minimal.conf diff --git a/conf/machine/omap3evm.conf b/conf/machine/omap3evm.conf index 8780b827f5..ad410fae4c 100644 --- a/conf/machine/omap3evm.conf +++ b/conf/machine/omap3evm.conf @@ -23,7 +23,7 @@ EXTRA_IMAGECMD_jffs2 = "-lnp " SERIAL_CONSOLE = "115200 ttyS0" -PREFERRED_PROVIDER_virtual/kernel ?= "linux-omap-pm" +PREFERRED_PROVIDER_virtual/kernel = "linux-omap-psp" UBOOT_ARCH = "arm" UBOOT_MACHINE = "omap3_evm_config" diff --git a/conf/machine/vortex86sx.conf b/conf/machine/vortex86sx.conf index b2a116d109..68a62cc4dc 100644 --- a/conf/machine/vortex86sx.conf +++ b/conf/machine/vortex86sx.conf @@ -3,7 +3,7 @@ require conf/machine/include/tune-i486sx.inc -MACHINE_FEATURES += "x86" +MACHINE_FEATURES = "kernel26 alsa vfat screen usbhost x86" KERNEL_IMAGETYPE = "bzImage" diff --git a/recipes/devmem2/devmem2.bb b/recipes/devmem2/devmem2.bb index 5b72d1c31b..4888d333b1 100644 --- a/recipes/devmem2/devmem2.bb +++ b/recipes/devmem2/devmem2.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Simple program to read/write from/to any location in memory." SRC_URI = "http://www.lartmaker.nl/lartware/port/devmem2.c" LICENSE = "GPL" -PR = "r2" +PR = "r3" S = "${WORKDIR}" diff --git a/recipes/dri/libdrm_2.4.11.bb b/recipes/dri/libdrm_2.4.11.bb index 0ea2396372..4f2af1ed73 100644 --- a/recipes/dri/libdrm_2.4.11.bb +++ b/recipes/dri/libdrm_2.4.11.bb @@ -3,9 +3,14 @@ DEPENDS = "libpthread-stubs" LICENSE = "MIT" SRC_URI = "http://dri.freedesktop.org/libdrm/libdrm-${PV}.tar.bz2" PROVIDES = "drm" +PR = "r1" inherit autotools pkgconfig do_stage() { autotools_stage_all } + +PACKAGES =+ "${PN}-intel" + +FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" diff --git a/recipes/ezx/ezxd_svn.bb b/recipes/ezx/ezxd_svn.bb index ab1010c48e..ce0542fba2 100644 --- a/recipes/ezx/ezxd_svn.bb +++ b/recipes/ezx/ezxd_svn.bb @@ -19,6 +19,8 @@ S = "${WORKDIR}/${PN}" CFLAGS_append = " -DDEBUG " +TARGET_CC_ARCH += "${LDFLAGS}" + do_configure() { sed -i -e s:CROSS:CC:g Makefile } diff --git a/recipes/imagemagick/imagemagick_6.3.5-10.bb b/recipes/imagemagick/imagemagick_6.3.5-10.bb index 7b92a8252e..cf9e82f3e2 100644 --- a/recipes/imagemagick/imagemagick_6.3.5-10.bb +++ b/recipes/imagemagick/imagemagick_6.3.5-10.bb @@ -2,7 +2,7 @@ DESCRIPTION = "ImageMagick is an image convertion tools" SECTION = "console/utils" LICENSE = "GPL" DEPENDS = "tiff" -PR = "r3" +PR = "r4" SRC_URI = "ftp://ftp.nluug.nl/pub/ImageMagick/ImageMagick-${PV}.tar.bz2 \ file://PerlMagic_MakePatch;patch=1 \ diff --git a/recipes/ipython/ipython_0.10.bb b/recipes/ipython/ipython_0.10.bb new file mode 100644 index 0000000000..7ab8d724e3 --- /dev/null +++ b/recipes/ipython/ipython_0.10.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Enhanced Python Shell" +HOMEPAGE = "http://ipython.scipy.org/moin/" +SECTION = "devel/python" +LICENSE = "BSD" +DEPENDS = "less" +RDEPENDS = "python-pprint python-io python-shell python-misc python-lang \ + python-stringold python-codecs python-crypt python-threading \ + python-pydoc python-debugger python-textutils python-pickle \ + python-subprocess" + +SRC_URI = "http://ipython.scipy.org/dist/ipython-${PV}.tar.gz" + +inherit distutils + +FILES_${PN} = "/" diff --git a/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch b/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch index b52b3e309b..6eb604e45c 100644 --- a/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch +++ b/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch @@ -3,17 +3,17 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c --- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100 +++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100 @@ -20,7 +20,7 @@ - #include <endian.h> #include <netinet/in.h> + #include <sys/utsname.h> #include <sys/vfs.h> - +#include <linux/types.h> #define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */ #include "romfs_fs.h" -@@ -33,6 +33,12 @@ - #include "lvm2_sb.h" - #include "iso9660_sb.h" +@@ -37,6 +37,12 @@ + #include "ocfs2_fs.h" + #include "nilfs_fs.h" +#if __BYTE_ORDER == __BIG_ENDIAN +#include <linux/byteorder/big_endian.h> @@ -24,7 +24,7 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c /* * Slightly cleaned up version of jfs_superblock to * avoid pulling in other kernel header files. -@@ -54,6 +60,27 @@ +@@ -59,6 +65,27 @@ /* Swap needs the definition of block size */ #include "swap_fs.h" @@ -50,14 +50,14 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c +} + static int gzip_image(const void *buf, unsigned long long *bytes) - { + {277 304 const unsigned char *p = buf; -@@ -277,6 +304,8 @@ +@@ -490,6 +517,8 @@ {1, "ext3", ext3_image}, {1, "ext2", ext2_image}, {1, "minix", minix_image}, + {0, "jffs2", jffs2_image}, + {0, "vfat", vfat_image}, + {1, "nilfs2", nilfs2_image}, + {2, "ocfs2", ocfs2_image}, {8, "reiserfs", reiserfs_image}, - {64, "reiserfs", reiserfs_image}, - {32, "jfs", jfs_image}, diff --git a/recipes/klibc/files/modprobe.patch b/recipes/klibc/files/modprobe.patch index 074b0b6311..61ee340ff9 100644 --- a/recipes/klibc/files/modprobe.patch +++ b/recipes/klibc/files/modprobe.patch @@ -7,16 +7,16 @@ Index: klibc-1.5/usr/utils/Kbuild progs := chroot dd mkdir mkfifo mknod mount pivot_root umount -progs += true false sleep ln nuke minips cat --progs += insmod uname halt kill readlink cpio +-progs += uname halt kill readlink cpio sync dmesg +progs += true false sleep ln nuke minips cat losetup -+progs += insmod uname halt kill readlink cpio modprobe ++progs += uname halt kill readlink cpio sync dmesg modprobe static-y := $(addprefix static/, $(progs)) shared-y := $(addprefix shared/, $(progs)) -@@ -52,7 +52,10 @@ - shared/readlink-y := readlink.o - static/cpio-y := cpio.o +@@ -54,7 +54,10 @@ shared/cpio-y := cpio.o + static/sync-y := sync.o + shared/sync-y := sync.o - +static/modprobe-y := modprobe.o +shared/modprobe-y := modprobe.o diff --git a/recipes/klibc/files/staging.patch b/recipes/klibc/files/staging.patch index 215daad456..390c214f94 100644 --- a/recipes/klibc/files/staging.patch +++ b/recipes/klibc/files/staging.patch @@ -26,13 +26,13 @@ Index: klibc-1.5/scripts/Kbuild.install $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib - $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin - $(Q)set -e ; for d in linux scsi asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \ - mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \ + $(Q)set -e ; for d in linux asm asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \ for r in $(KLIBCKERNELSRC)/include $(KLIBCKERNELOBJ)/include \ $(KLIBCKERNELOBJ)/include2 ; do \ - [ ! -d $$r/$$d ] || \ -- cp -rfL $$r/$$d/. \ -+ cp -rfd $$r/$$d/. \ + [ ! -d $$r/$$d ] && continue; \ + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \ +- cp -rfL $$r/$$d/. \ ++ cp -rfd $$r/$$d/. \ $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \ done ; \ done @@ -116,7 +116,7 @@ Index: klibc-1.5/usr/kinit/run-init/Kbuild =================================================================== --- klibc-1.5.orig/usr/kinit/run-init/Kbuild 2007-03-04 02:52:10.000000000 +0100 +++ klibc-1.5/usr/kinit/run-init/Kbuild 2008-02-24 15:13:50.221824559 +0100 -@@ -21,5 +21,3 @@ +@@ -25,5 +25,3 @@ # Cleaning clean-dirs := static shared @@ -136,7 +136,7 @@ Index: klibc-1.5/usr/utils/Kbuild =================================================================== --- klibc-1.5.orig/usr/utils/Kbuild 2007-03-04 02:52:10.000000000 +0100 +++ klibc-1.5/usr/utils/Kbuild 2008-02-24 15:13:50.229824358 +0100 -@@ -64,5 +64,3 @@ +@@ -66,5 +66,3 @@ # Clean deletes the static and shared dir clean-dirs := static shared diff --git a/recipes/klibc/files/wc.patch b/recipes/klibc/files/wc.patch index 296a4f9d92..f54c49d3ab 100644 --- a/recipes/klibc/files/wc.patch +++ b/recipes/klibc/files/wc.patch @@ -8,7 +8,7 @@ Index: klibc-1.5/usr/utils/Kbuild progs := chroot dd mkdir mkfifo mknod mount pivot_root umount -progs += true false sleep ln nuke minips cat losetup +progs += true false sleep ln nuke minips cat losetup wc - progs += insmod uname halt kill readlink cpio modprobe + progs += uname halt kill readlink cpio sync dmesg modprobe static-y := $(addprefix static/, $(progs)) @@ -56,6 +56,9 @@ diff --git a/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch b/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch new file mode 100644 index 0000000000..2ba6d98172 --- /dev/null +++ b/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch @@ -0,0 +1,63 @@ +Index: klibc-1.5/usr/kinit/fstype/fstype.c +=================================================================== +--- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100 ++++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100 +@@ -20,7 +20,7 @@ + #include <endian.h> + #include <netinet/in.h> + #include <sys/vfs.h> +- ++#include <linux/types.h> + #define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */ + + #include "romfs_fs.h" +@@ -33,6 +33,12 @@ + #include "lvm2_sb.h" + #include "iso9660_sb.h" + ++#if __BYTE_ORDER == __BIG_ENDIAN ++#include <linux/byteorder/big_endian.h> ++#else ++#include <linux/byteorder/little_endian.h> ++#endif ++ + /* + * Slightly cleaned up version of jfs_superblock to + * avoid pulling in other kernel header files. +@@ -54,6 +60,27 @@ + /* Swap needs the definition of block size */ + #include "swap_fs.h" + ++static int jffs2_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ // Very sloppy! ;-E ++ if (*buf == 0x85 && buf[1] == 0x19) ++ return 1; ++ ++ return 0; ++} ++ ++static int vfat_image(const unsigned char *buf, unsigned long *blocks) ++{ ++ const struct romfs_super_block *sb = ++ (const struct romfs_super_block *)buf; ++ if (!strncmp(buf + 54, "FAT12 ", 8) ++ || !strncmp(buf + 54, "FAT16 ", 8) ++ || !strncmp(buf + 82, "FAT32 ", 8)) ++ return 1; ++ ++ return 0; ++} ++ + static int gzip_image(const void *buf, unsigned long long *bytes) + { + const unsigned char *p = buf; +@@ -277,6 +304,8 @@ + {1, "ext3", ext3_image}, + {1, "ext2", ext2_image}, + {1, "minix", minix_image}, ++ {0, "jffs2", jffs2_image}, ++ {0, "vfat", vfat_image}, + {8, "reiserfs", reiserfs_image}, + {64, "reiserfs", reiserfs_image}, + {32, "jfs", jfs_image}, diff --git a/recipes/klibc/klibc-1.5/modprobe.patch b/recipes/klibc/klibc-1.5/modprobe.patch new file mode 100644 index 0000000000..dceaf6103f --- /dev/null +++ b/recipes/klibc/klibc-1.5/modprobe.patch @@ -0,0 +1,1985 @@ +Index: klibc-1.5/usr/utils/Kbuild +=================================================================== +--- klibc-1.5.orig/usr/utils/Kbuild 2008-03-07 22:01:45.223695348 +0100 ++++ klibc-1.5/usr/utils/Kbuild 2008-03-07 22:48:44.660783243 +0100 +@@ -3,8 +3,8 @@ + # + + progs := chroot dd mkdir mkfifo mknod mount pivot_root umount +-progs += true false sleep ln nuke minips cat +-progs += insmod uname halt kill readlink cpio ++progs += true false sleep ln nuke minips cat losetup ++progs += insmod uname halt kill readlink cpio modprobe + + static-y := $(addprefix static/, $(progs)) + shared-y := $(addprefix shared/, $(progs)) +@@ -52,7 +52,10 @@ + shared/readlink-y := readlink.o + static/cpio-y := cpio.o + shared/cpio-y := cpio.o +- ++static/modprobe-y := modprobe.o ++shared/modprobe-y := modprobe.o ++static/losetup-y := losetup.o ++shared/losetup-y := losetup.o + # Additionally linked targets + always := static/reboot static/poweroff shared/reboot shared/poweroff + +Index: klibc-1.5/usr/utils/list.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ klibc-1.5/usr/utils/list.h 2008-03-07 22:33:22.287688586 +0100 +@@ -0,0 +1,238 @@ ++/* Stolen from Linux Kernel Source's list.h -- GPL. */ ++#ifndef _MODINITTOOLS_LIST_H ++#define _MODINITTOOLS_LIST_H ++ ++#undef offsetof ++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ++ ++/** ++ * container_of - cast a member of a structure out to the containing structure ++ * ++ * @ptr: the pointer to the member. ++ * @type: the type of the container struct this is embedded in. ++ * @member: the name of the member within the struct. ++ * ++ */ ++#define container_of(ptr, type, member) ({ \ ++ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ++ (type *)( (char *)__mptr - offsetof(type,member) );}) ++ ++/* ++ * Simple doubly linked list implementation. ++ * ++ * Some of the internal functions ("__xxx") are useful when ++ * manipulating whole lists rather than single entries, as ++ * sometimes we already know the next/prev entries and we can ++ * generate better code by using them directly rather than ++ * using the generic single-entry routines. ++ */ ++ ++struct list_head { ++ struct list_head *next, *prev; ++}; ++ ++#define LIST_HEAD_INIT(name) { &(name), &(name) } ++ ++#define LIST_HEAD(name) \ ++ struct list_head name = LIST_HEAD_INIT(name) ++ ++#define INIT_LIST_HEAD(ptr) do { \ ++ (ptr)->next = (ptr); (ptr)->prev = (ptr); \ ++} while (0) ++ ++/* ++ * Insert a new entry between two known consecutive entries. ++ * ++ * This is only for internal list manipulation where we know ++ * the prev/next entries already! ++ */ ++static inline void __list_add(struct list_head *new, ++ struct list_head *prev, ++ struct list_head *next) ++{ ++ next->prev = new; ++ new->next = next; ++ new->prev = prev; ++ prev->next = new; ++} ++ ++/** ++ * list_add - add a new entry ++ * @new: new entry to be added ++ * @head: list head to add it after ++ * ++ * Insert a new entry after the specified head. ++ * This is good for implementing stacks. ++ */ ++static inline void list_add(struct list_head *new, struct list_head *head) ++{ ++ __list_add(new, head, head->next); ++} ++ ++/** ++ * list_add_tail - add a new entry ++ * @new: new entry to be added ++ * @head: list head to add it before ++ * ++ * Insert a new entry before the specified head. ++ * This is useful for implementing queues. ++ */ ++static inline void list_add_tail(struct list_head *new, struct list_head *head) ++{ ++ __list_add(new, head->prev, head); ++} ++ ++/* ++ * Delete a list entry by making the prev/next entries ++ * point to each other. ++ * ++ * This is only for internal list manipulation where we know ++ * the prev/next entries already! ++ */ ++static inline void __list_del(struct list_head * prev, struct list_head * next) ++{ ++ next->prev = prev; ++ prev->next = next; ++} ++ ++/** ++ * list_del - deletes entry from list. ++ * @entry: the element to delete from the list. ++ * Note: list_empty on entry does not return true after this, the entry is ++ * in an undefined state. ++ */ ++static inline void list_del(struct list_head *entry) ++{ ++ __list_del(entry->prev, entry->next); ++} ++ ++/** ++ * list_del_init - deletes entry from list and reinitialize it. ++ * @entry: the element to delete from the list. ++ */ ++static inline void list_del_init(struct list_head *entry) ++{ ++ __list_del(entry->prev, entry->next); ++ INIT_LIST_HEAD(entry); ++} ++ ++/** ++ * list_move - delete from one list and add as another's head ++ * @list: the entry to move ++ * @head: the head that will precede our entry ++ */ ++static inline void list_move(struct list_head *list, struct list_head *head) ++{ ++ __list_del(list->prev, list->next); ++ list_add(list, head); ++} ++ ++/** ++ * list_move_tail - delete from one list and add as another's tail ++ * @list: the entry to move ++ * @head: the head that will follow our entry ++ */ ++static inline void list_move_tail(struct list_head *list, ++ struct list_head *head) ++{ ++ __list_del(list->prev, list->next); ++ list_add_tail(list, head); ++} ++ ++/** ++ * list_empty - tests whether a list is empty ++ * @head: the list to test. ++ */ ++static inline int list_empty(struct list_head *head) ++{ ++ return head->next == head; ++} ++ ++static inline void __list_splice(struct list_head *list, ++ struct list_head *head) ++{ ++ struct list_head *first = list->next; ++ struct list_head *last = list->prev; ++ struct list_head *at = head->next; ++ ++ first->prev = head; ++ head->next = first; ++ ++ last->next = at; ++ at->prev = last; ++} ++ ++/** ++ * list_splice - join two lists ++ * @list: the new list to add. ++ * @head: the place to add it in the first list. |
