2.5.2 API change summary

From: Andreas Bombe (bombe@informatik.tu-muenchen.de)
Date: Sun Jan 20 2002 - 23:05:25 EST


A bit late, but here it is. No guarantees for correctness of the
explanations, it's what I've gathered from context and reading a bit of
source code. Corrections welcome.

These are just the actual changes in the 2.5.2 patch, if you want the
bigger picture visit Randy Dunlap's page where he collects pointers to
mailing list threads of relevance for driver writers:
        http://www.osdl.org/archive/rddunlap/linux-port-25x.html

And here it goes:

        GENERAL CHANGES:

        include/linux/list.h:

- New typedef of list_t to struct list_head.

        include/linux/crc32.h (new):

- Central implementation of CRC32, which was previously implemented in 5
  places in the kernel.

        include/linux/devfs_fs_kernel.h:

- devfs_put() exported (put (release) reference to a devfs entry).

- New function devfs_get_handle() to get the devfs handle corresponding
  to a name or major/minor combination.

        include/linux/kdev_t.h:

- kdev_t changed from basic type (unsigned short) to opaque struct type
  to prepare for future expansion to larger major/minor numbers.

- New macros major() and minor() to replace MAJOR() and MINOR() for
  extracting those from a kdev_t. MAJOR()/MINOR() are for the user
  level dev_t only now.

- New functions kdev_val() and val_to_kdev() to convert a kdev_t to/from
  an unsigned int cookie.

- New macro mk_kdev() to convert a major/minor combination into a
  kdev_t.

        include/linux/namespace.h (new):
        include/linux/sched.h:

- Added task namespace functions.

- New CLONE_NEWNS cloning flag for namespaces.

        include/linux/mm.h:
        include/linux/gfp.h (new):

- All GFP macros and page allocation functions moved to new gfp.h from
  mm.h.

- New function get_user_pages().

        BLOCK DEVICES / FILE SYSTEMS:

        include/linux/bio.h:

- New #define BIO_MAX_SIZE to accompany BIO_MAX_SECTORS, defined as
  (BIO_MAX_SECTORS << 9).

        include/linux/acct.h:

- acct_auto_close() now takes a struct super_block* instead of kdev_t as
  argument.

        include/linux/fs.h:

- create_empty_buffers() does not have a kdev_t parameter anymore.

- fsync_no_super() and brw_page() now take a struct super_block* where
  they took a kdev_t as argument.

- The following functions are now wrappers mapping kdev_t to struct
  super_block* of the real function:

        get_hash_table() => __get_hash_table()
        getblk() => __getblk()
        bread() => __bread()

- New functions sb_set_blocksize() and sb_min_blocksize() (to set
  super_block block size) and map_bh().

        SCSI:

        drivers/scsi/hosts.h:

- Field host_lock in struct Scsi_Host changed from spinlock_t to
  spinlock_t*, which defaults to point to the new field default_lock.
  Function scsi_assign_lock() to set that field added.

- Fully dynamic host and device handling: scsi_(un)register_module()
  removed, scsi_unregister_device() and scsi_(un)register_host()
  added.

        USB:

        drivers/usb/hcd.h (new):

- New host controller driver framework. "Plugs into usbcore (usb_bus)
  and lets HCDs share code, minimizing HCD-specific behaviors/bugs."

        include/linux/usb.h:

- typedef devrequest is now struct usb_ctrlrequest.

-- 
Andreas Bombe <bombe@informatik.tu-muenchen.de>    DSA key 0x04880A44
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jan 23 2002 - 21:00:42 EST