text:
The present invention encompasses a solid dose delivery vehicle for ballistic administration of a bioactive material to subcutaneous and intradermal tissue, the delivery vehicle being sized and shaped for penetrating the epidermis. The delivery vehicle further comprises a stabilizing polyol glass loaded with the bioactive material and capable of releasing the bioactive material in situ. The present invention further includes methods of making and using the solid dose delivery vehicle of the invention.
1. A therapeutic composition in solid dose form comprising a bioactive material and a carbohydrate, wherein
a) the bioactive material is a protein,
b) the therapeutic composition is a powder comprising therapeutic particles having a particle size distribution suitable for pulmonary administration,
c) the therapeutic particles are in a glassy state,
d) the bioactive material and the carbohydrate are dispersed within the therapeutic particles of the powder,
e) the carbohydrate is selected from the group consisting of monosaccharides, disaccharides and sugar alcohols,
f) the therapeutic particles remain in the glassy state when stored at elevated temperature, wherein the elevated temperature is 60° C.,
g) the protein is distributed homogeneously and in solid solution in the carbohydrate, and
h) the therapeutic particles have a mean particle size of 0.5 to 5 μm.
2. The therapeutic composition according to
3. The therapeutic composition according to
4. The therapeutic composition according to
5. The therapeutic composition according to
6. The therapeutic composition according to
7. The therapeutic composition according to
8. The therapeutic composition according to
9. The therapeutic composition according to
10. The therapeutic composition according to
11. The therapeutic composition according to
12. The therapeutic composition according to
13. A therapeutic composition in solid dose form comprising a bioactive material and a carbohydrate, wherein
a) the bioactive material is a protein,
b) the therapeutic composition comprises therapeutic particles in a glassy state,
c) the therapeutic composition is a powder having a particle size distribution suitable for pulmonary administration,
d) the bioactive material and the carbohydrate are dispersed within the therapeutic particles of the powder,
e) the therapeutic particles further comprise a glass modifier, wherein the glass modifier is not the bioactive material,
f) the carbohydrate is selected from the group consisting of monosaccharides, disaccharides and sugar alcohols,
g) the therapeutic particles remain in the glassy state when stored at elevated temperature, wherein the elevated temperature is 60° C.,
h) the protein is distributed homogeneously and in solid solution in the carbohydrate, and
i) the particles have a mean particle size of 0.5 to 5 μm.
14. The therapeutic composition according to
15. The therapeutic composition according to
16. The therapeutic composition according to
17. The therapeutic composition according to
18. The therapeutic composition according to
19. The therapeutic composition according to
20. The therapeutic composition according to
21. The therapeutic composition according to
22. The therapeutic composition according to
23. The therapeutic composition according to
24. The therapeutic composition according to
25. The therapeutic composition according to
26. The therapeutic composition according to
27. The therapeutic composition according to
28. The therapeutic composition according to
29. The therapeutic composition according to
30. The therapeutic composition according to
31. The therapeutic composition according to
32. The therapeutic composition according to
33. The therapeutic composition according to
34. The therapeutic composition according to
35. The therapeutic composition according to
36. The therapeutic composition according to
37. The therapeutic composition according to
38. The therapeutic composition according to
39. The therapeutic composition according to
40. The therapeutic composition according to
41. The therapeutic composition according to
42. The therapeutic composition according to
43. The therapeutic composition according to
44. The therapeutic composition according to
45. The therapeutic composition according to
46. The therapeutic composition according to
47. The therapeutic composition according to
48. The therapeutic composition according to
49. The therapeutic composition according to
50. The therapeutic composition according to
51. The therapeutic composition according to
52. The therapeutic composition according to
This application is a continuation of application Ser. No. 10/652,212, filed Aug. 29, 2003; which is a continuation of application Ser. No. 10/376,136, filed Feb. 27, 2003, now U.S. Pat. No. 6,893,657; which is a continuation of application Ser. No. 09/945,180, filed Aug. 31, 2001, now U.S. Pat. No. 6,565,871; which is a continuation of application Ser. No. 09/628,380, filed Aug. 1, 2000, now U.S. Pat. No. 6,331,310; which is a continuation of application Ser. No. 08/349,029, filed Dec. 2, 1994, now U.S. Pat. No. 6,290,991. The disclosure of each of these is incorporated by reference herein as if put forth below in full.
The present invention relates generally to solid dose vehicles for delivery of bioactive materials and, more specifically, to solid dose delivery vehicles comprising a stabilizing polyol and a bioactive material. Methods of their making and uses thereof are also provided.
Solid dose delivery of bioactive materials to mucosal, dermal, ocular, subcutaneous, intradermal and pulmonary tissues offers several advantages over previous methods such as topical applications of liquids, transdermal administration via so-called "patches" and hypodermic injection. In the case of injection, solid dose delivery can reduce the risk of infection by eliminating the use of needles and syringes, provide for more accurate dosing than multidose vials, and minimize or eliminate the discomfort which often attends hypodermic injection. Several solid dose delivery systems have been developed including those utilizing transdermal and ballistic delivery devices.
Topical delivery is utilized for a variety of bioactive materials such as antibiotics for wound healing. These topical ointments, gels, creams, etc. must be frequently reapplied in order to remain effective. This is particularly difficult in the case of burn wounds.
Devices used for administering drugs transdermally usually comprise laminated composites with a reservoir layer of drug with the composite being adhered to the skin, i.e., transdermal patch, such as described in U.S. Pat. No. 4,906,463. However, many drugs are not suitable for transdermal delivery, nor have transdermal drug release rates for those capable of transdermal delivery been perfected.
Subdermal implants have also been formulated for slow release of certain pharmaceutical agents for extended periods of time such as months or years. A well-known example is the Norplant® for delivery of steroid hormones. Such implants are usually constructed of an inner, drug-filled core which is relatively permeable to the drug and an outer matrix which is relatively impermeable to the drug. Both inner core and outer matrix are generally formed from polymers. The implants release drugs by dissolution of the drug in the inner core and slow release across the outer matrix. The inner core may substantially dissolve over time, however, in devices currently in use, the outer matrix does not dissolve. Implants are placed subcutaneously by making an incision in the skin and forcing the implants between the skin and the muscle. At the end on their use, if not dissolved, these implants are surgically removed. U.S. Pat. No. 4,244,949 describes an implant which has an outer matrix of an inert plastic such as polytetrafluoroethylene resin. PCT/GB 90/00497 describes slow release vitreous systems for formation of implantable devices. These implants are bioabsorbable and need not be surgically removed. However, insertion is by surgical means. Moreover, these devices may be limited in the type of bioactive material that can be incorporated. In the case of polymeric implants, bioactive materials that cannot withstand organic solvents are not suitable for use. In the case of vitreous systems, bioactive materials that cannot withstand the elevated temperatures necessary to form the implants are unsuitable for use. In all cases, bioactive materials that are unstable at body temperature, particularly over long time periods, are unsuitable for use.
A variety of formulations have been provided for administration in aerosolized form to mucosal surfaces, particularly "by-inhalation" (naso-pharyngeal and pulmonary). Compositions for by-inhalation pharmaceutical administration generally comprise a liquid formulation of the pharmaceutical agent and a device for delivering the liquid in aerosolized form. U.S. Pat. No. 5,011,678 describes suitable compositions containing a pharmaceutically active substance, a biocompatible amphophilic steroid and a biocompatible (hydro/fluoro) carbon propellant. U.S. Pat. No. 5,006,343 describes suitable compositions containing liposomes, pharmaceutically active substances and an amount of alveolar surfactant protein effective to enhance transport of the liposomes across a pulmonary surface.
One drawback to the use of aerosolized formulations is that maintenance of pharmaceutical agents in aqueous suspensions or solutions can lead to aggregation and loss of activity and bioavailability. The loss of activity can be partially prevented by refrigeration; however, this limits the utility of these formulations. This is particularly true in the case of peptides and hormones. For instance, synthetic gonadotropin releasing hormone (GnRH) analogs, such as the agonist nafarelin or the antagonist ganirelex are designed for high potency, increased hydrophobicity and membrane binding. The compounds have sufficient hydrophobic character to aggregate in aqueous solution and to form an ordered structure that increases in viscosity with time. Thus bioavailability in nasal or pulmonary formulations may be prohibitively low. The use of powdered formulations overcomes many of these drawbacks. The requisite particle size of such powders is 0.5-5 microns in order to attain deep alveolar deposition in pulmonary delivery. Unfortunately, powders of such particle size tend to absorb water and clump and thus diminish deposition of the powder in the deep alveolar spaces. Although powders with larger particle size are suitable for delivery to the naso-pharynx region, the tendency of powders to clump decreases the available particle surface area for contact with, and absorption through, these membranes. Devices which disaggregate clumps formed by electrostatic interactions are currently in use (e.g., the Turbohaler); however, these do not disaggregate moisture induced clumps and it would be advantageous to have powders which do not absorb moisture and clump and thus increase the effective pulmonary concentration of the drug.
Solid dose delivery vehicles for ballistic, transdermal, administration have also been developed. For example, in U.S. Pat. No. 3,948,263, a ballistic animal implant comprised of an exterior polymeric shell encasing a bioactive material is described for veterinary uses. Similarly, in U.S. Pat. No. 4,326,524, a solid dose ballistic projectile comprising bioactive material and inert binder without an exterior casing is disclosed. Delivery is by compressed gas or explosion. Gelatin covered tranquilizing substances carried by ballistic projectiles for implant are also described in U.S. Pat. No. 979,993.
The above-described ballistic devices, however, are suited to large animal veterinary applications due to their relatively large size, on the order of millimeters. Ballistic delivery at the cellular level has also been successful. The general principle of ballistic administration is the use of a supersonic wavefront, created by the release of compressed gas, to propel the particles contained in an adjoining chamber. For example, nucleic acids adsorbed on tungsten microprojectile particles have been successfully delivered to living epidermal plant cells. See Klein, Nature 327:70-73 (1987). A better controlled device is the particle inflow gun (PIG). Vain et al. (1993) Plant Cell, Tissue and Organ Culture 33:237-246. Devices have been described which fire ampules containing medication using gas pressure. U.S. Pat. No. 4,790,824; and PCT/GB 94/00753. Several devices that inject fluids have also been described. U.S. Pat. Nos. 5,312,335 and 4,680,027. There are few existing formulations suitable for ballistic delivery. Powder formulations of pharmaceuticals in their present form are unsuitable for ballistic administration. Particles of available powder forms are generally irregular, varying in size, shape and density. This lack of uniformity leads to powder deposit and loss at the skin surface during administration, as well as problems in control and consistency of the depth of delivery to subcutaneous and intradermal tissues.
Thus it would be advantageous to provide solid dose drug delivery vehicles of defined size, shape and density, to ensure more uniform distribution. Additional benefits would accrue if the shape of the vehicle could be controlled to facilitate or control penetration of the epidermis and hard layers of the skin. Small delivery vehicle size, preferably coupled with high momentum delivery, would also increase the comfort of administration and minimize tissue damage. The manufacture of such a solid dose delivery vehicle should be such that neither the delivery vehicle nor the bioactive substance being delivered is damaged nor its efficacy decreased. Furthermore, the bioactive substance should remain stable when loaded within or on the vehicle so that efficacious administration can be achieved, and to facilitate storage of the loaded delivery vehicle. Manufacture of the solid dose delivery vehicle and its loading with bioactive material and the administration of the vehicle should also be relatively simple and economical.
All references cited herein are hereby incorporated by reference.
The present invention encompasses a solid dose delivery vehicle suitable for therapeutic administration of a wide variety of substances, comprising a stabilizing polyol and a bioactive material. Preferred buffers, adjuvants and additional stabilizers are also provided. The delivery vehicle can be sized and shaped for a variety of modes of administration.
The invention further includes a solid dose delivery vehicle comprising an outer portion comprising a water soluble glassy and/or polymeric material having a hollow compartment therein, and an inner portion residing in the compartment, the inner portion comprising at least one stabilizing polyol and a therapeutically effective amount of at least one bioactive substance.
The invention also encompasses methods of delivering a bioactive material by providing a solid dose delivery vehicle described above and administering the vehicle to the tissue. Administration can be by mucosal, oral, topical, subcutaneous, intradermal and by-inhalation.
The invention further encompasses methods of making the solid dose delivery vehicle. The stabilizing polyol, bioactive material and any other components are mixed and processed by a wide variety of methods, including milling, spray drying, freeze drying, air drying, vacuum drying, fluidized-bed drying, coprecipitation and critical fluid extraction. The dried components can be heated to fluidize the glass which can then be drawn or spun into solid or hollow fibers. The dried components can also be mixed in aqueous or organic solutions and dried, such as by spray drying, freeze drying, air-drying, vacuum drying, fluidized-bed drying, co-precipitation and critical fluid extraction.
The invention further provides methods of making vehicles suitable for slow or pulsatile release of bioactive substances. The methods include combining bioactive material in solid solutions in stabilizing glass-forming polyol and other glass formers with dissolution or degradation rates slower than that of the glass-forming polyol, and processing the components as described above. The ratio of materials can be controlled so as to provide a wide range of narrowly defined release rates. The coformulations of stabilizing polyol and other water-soluble and/or biodegradable glasses, plastics and glass modifiers produced thereby are also encompassed by the present invention.
The invention further provides methods of making delivery vehicles of glasses of hydrated carbohydrates hydrates with increased Tg and the compositions obtained thereby. The method comprises adding a modifier, preferably a protein, in an amount sufficient to elevate the Tg, to the carbohydrate and processing according to a method described herein. The modifier may be an inert material or may be the bioactive material. The product obtained may be combined with stabilizing polyols with a Tg less than that of the modified carbohydrate to form a slow and/or pulsatile delivery system.
The vehicles and methods of the invention also encompass vehicles which comprise fibers, spheres, particles and needles. Preferably these vehicles are fibers, spheres, particles and needles. The vehicles can be either microscopic or macroscopic.
A wide variety of bioactive materials are suitable for use in accord with the present invention, including, but not limited to, therapeutic and prophylactic agents. The delivery vehicle and methods of the present invention provide for a variety of dosing schemes for delivery of the bioactive material and are suitable for both veterinary and human applications.
The present invention comprises a solid dose delivery vehicle for mucosal, oral, topical, subcutaneous and intradermal and by-inhalation administration comprising a stabilizing polyol and a therapeutically effective amount of a bioactive material. By "solid dose" as used herein, is meant that a bioactive material delivered by the vehicle is in solid rather than liquid or aqueous form. It has now been found that stabilizing polyols can be formulated into solid vehicles suitable for drug delivery. These stabilizing polyols have been found to be particularly useful where otherwise denaturing conditions would render impossible the formulation of solid dosage forms of bioactive materials. In particular, such conditions include elevated temperatures and the presence of organic solvents.
The compositions exist as solid solutions of the bioactive material in stabilizing polyol-glass continuous phases. Previous studies have shown that in this form the product is resistant to high temperatures with the exact temperatures depending on the stabilizing polyol used. Thus, the compositions can be processed as glassy melts for brief periods without being damaged by the processing. In the same way, the stabilizing polyol containing the product would be resistant to damage during sintering with nitrate and/or carboxylate and/or derivatized carbohydrate and/or other glass-forming substances.
Examples of types of bioactive materials that may be used in the vehicle and methods of the invention include any pharmaceutical agents, including, but not limited to, antiinflammatory drugs, analgesics, antiarthritic drugs, antispasmodics, antidepressants, antipsychotics, tranquilizers, antianxiety drugs, narcotic antagonists, antiparkinsonism agents, cholinergic agonists, chemotherapeutic drugs, immunosuppressive agents, antiviral agents, antibiotic agents, appetite suppressants, antiemetics, anticholinergics, antihistaminics, antimigraine agents, coronary, cerebral or peripheral vasodilators, hormonal agents, contraceptives, antithrombotic agents, diuretics, antihypertensive agents, cardiovascular drugs, opioids, and the like.
Suitable bioactive materials also include therapeutic and prophylactic agents. These include, but are not limited to, any therapeutically effective biological modifier. Such modifiers include, but are not limited to, subcellular compositions, cells, bacteria, viruses and molecules including, but not limited to, lipids, organics, proteins and peptides (synthetic and natural), peptide mimetics, hormones (peptide, steroid and corticosteroid), D and L amino acid polymers, oligosaccharides, polysaccharides, nucleotides, oligonucleotides and nucleic acids, including DNA and RNA, protein nucleic acid hybrids, small molecules and physiologically active analogs thereof. Further, the modifiers may be derived from natural sources or made by recombinant or synthetic means and include analogs, agonists and homologs. As used herein "protein" refers also to peptides and polypeptides. Such proteins include, but are not limited to, enzymes, biopharmaceuticals, growth hormones, growth factors, insulin, monoclonal antibodies, interferons, interleukins and cytokines. Organics include, but are not limited to, pharmaceutically active chemicals with amino, amino and guanidino groups. Suitable steroid hormones include, but are not limited to, estrogen, progesterone, testosterone and physiologically active analogs thereof. Numerous steroid hormone analogs are known in the art and include, but are not limited to, estradiol, SH-135 and tamoxifen. Many steroid hormones such as progesterone, testosterone and analogs thereof are particularly suitable for use in the present invention as they are not absorbed transdermally and, with the exception of a few analogs, are destroyed upon oral administration by the so-called hepatic first pass mechanism. Therapeutic agents prepared by the methods described herein are also encompassed by the invention. As used herein, "nucleic acids" includes any therapeutically effective nucleic acids known in the art including, but not limited to DNA, RNA and physiologically active analogs thereof. The nucleotides may encode single genes or may be any vector known in the art of recombinant DNA including, but not limited to, plasmids, retroviruses and adeno-associated viruses. Preferably, the nucleotides are administered in the powder form of the solid dose vehicle.
Compositions containing prophylactic bioactive materials and carriers therefore are further encompassed by the invention. Preferable compositions include immunogens such as vaccines. Suitable vaccines include, but are not limited to, live and attenuated viruses, nucleotide vectors encoding antigens, bacteria, antigens, antigens plus adjuvants, haptens coupled to carriers. Particularly preferred are vaccines effective against diphtheria, tetanus, pertussis, botulinum, cholera, Dengue, Hepatitis A, C and E, hemophilus influenza b, herpes virus, Hylobacterium pylori, influenza, Japanese encephalitis, meningococci A, B, and C, measles, mumps, papilloma virus, pneumococci, polio, rubella, rotavirus, respiratory syncytial virus, Shigella, tuberculosis, yellow fever and combinations thereof. Vaccines may also be produced by molecular biology techniques to produce recombinant peptides or fusion proteins containing one or more portions of a protein derived from a pathogen. For instance, fusion proteins containing the antigen of interest and the B subunit of cholera toxin have been shown to induce an immune response to the antigen of interest. Sanchez et al. (1989) Proc. Natl. Acad. Sci. USA 86:481-485.
Preferably, the immunogenic composition contains an amount of an adjuvant sufficient to enhance the immune response to the immunogen. Suitable adjuvants include, but are not limited to, aluminum salts, squalene mixtures (SAF-1), muramyl peptide, saponin derivatives, mycobacterium cell wall preparations, monophosphoryl lipid A, mycolic acid derivatives, nonionic block copolymer surfactants, Quil A, cholera toxin B subunit, polyphosphazene and derivatives, and immunostimulating complexes (ISCOMs) such as those described by Takahashi et al. (1990) Nature 344:873-875. For veterinary use and for production of antibodies in animals, mitogenic components of Freund's adjuvant can be used. As with all immunogenic compositions, the immunologically effective amounts of the immunogens must be determined empirically. Factors to be considered include the immunogenicity, whether or not the immunogen will be complexed with or covalently attached to an adjuvant or carrier protein or other carrier, route of administration and the number of immunizing doses to be administered. Such factors are known in the vaccine art and it is well within the skill of immunologists to make such determinations without undue experimentation.
The present invention encompasses compositions and methods of making the compositions. Although singular forms may be used, more than one polyol, more than one biological substance and more than one inhibitor of the Maillard reaction may be present. Determination of the effective amounts of these compounds is within the skill of one in the art.
As used herein, the term "carbohydrates" includes, but is not limited to, monosaccharides, disaccharides, trisaccharides, oligosaccharides and their corresponding sugar alcohols, polyhydroxy compounds such as carbohydrate derivatives and chemically modified carbohydrates, hydroxymethyl starch and sugar copolymers (Ficoll). Both natural and synthetic carbohydrates are suitable for use herein. Synthetic carbohydrates include, but are not limited to, those which have the glycosidic bond replaced by a thiol or carbon bond. Both D and L forms of the carbohydrates may be used. The carbohydrate may be non-reducing or reducing. Suitable stabilizing polyols are those in which a bioactive material can be dried and stored without losses in activity by denaturation, aggregation or other mechanisms. Prevention of losses of activity can be enhanced by the addition of various additives such as inhibitors of the Maillard reaction as described below. Addition of such inhibitors is particularly preferred in conjunction with reducing carbohydrates.
Reducing carbohydrates suitable for use in the present invention are those known in the art and include, but are not limited to, glucose, maltose, lactose, fructose, galactose, mannose, maltulose, iso-maltulose and lactulose.
Non-reducing carbohydrates include, but are not limited to, non-reducing glycosides of polyhydroxy compounds selected from sugar alcohols and other straight chain polyalcohols. Other useful carbohydrates include raffinose, stachyose, melezitose, dextran, sucrose and sugar alcohols. The sugar alcohol glycosides are preferably monoglycosides, in particular the compounds obtained by reduction of disaccharides such as lactose, maltose, lactulose and maltulose. The glycosidic group is preferably a glucoside or a galactoside and the sugar alcohol is preferably sorbitol (glucitol). Particularly preferred carbohydrates are maltitol (4-O-β-D-glucopyranosyl-D-glucitol), lactitol (4-O-β-D-galactopyranosyl-D-glucitol), iso-maltulose, palatinit (a mixture of GPS, α-D-glucopyranosyl-1-6-sorbitol and GPM), and α-D-glucopyranosyl-1-6-mannitol, and its individual sugar alcohols, components GPS and GPM.
Preferably, the stabilizing polyol is a carbohydrate that exists as a hydrate, including trehalose, lactitol and palatinit. Most preferably, the stabilizing polyol is trehalose. It has now been found that, surprisingly, solid dose compositions containing sugar hydrates like trehalose lack the "stickiness" or "tackiness" of solid dose forms containing other carbohydrates. Thus, for manufacture, packaging and administration, trehalose is the preferred carbohydrate. Trehalose, α-D-glucopyranosyl-a-D-glucopyranoside, is a naturally occurring, non-reducing disaccharide which was initially found to be associated with the prevention of desiccation damage in certain plants and animals' which can dry out without damage and can revive when rehydrated. Trehalose has been shown to be useful in preventing denaturation of proteins, viruses and foodstuffs during desiccation. See U.S. Pat. Nos. 4,891,319; 5,149,653; 5,026,566; Blakeley et al. (1990) Lancet 336:854-855; Roser (July 1991) Trends in Food Sci. and Tech. 166-169; Colaco et al. (1992) Biotechnol. Internat., 345-350; Roser (1991) BioPharm. 4:47-53; Colaco et al. (1992) Bio/Tech. 10:1007-1011; and Roser et al. (May 1993) New Scientist, pp. 25-28.
It has also now been found, surprisingly, that the glass transition temperature (Tg) of trehalose can be elevated by the addition of glass modifiers. Preferably the glass modifiers are proteins that comprise 0.002-50% of the glass modifier-trehalose mixture. Thus, the present invention encompasses the compositions and methods of making the compositions comprised of trehalose and at least one modifier, wherein the compositions have Tgs equal to or greater than the same composite glasses of pure trehalose. Suitable active glass modifiers include, but are not limited to, proteins and other hydrated macromolecules. Suitable proteins include any physiologically acceptable protein and may be inert or a protein to be delivered therapeutically, i.e. a bioactive material.
It has also been found that bioactive materials soluble only in organic solvents can be dried in trehalose from an organic/aqueous solvent to give a conformation that is now soluble in aqueous solvents. Methods of making the dried material and compositions obtained thereby are provided by the invention. The bioactive material is dissolved in an organic/aqueous solvent in combination with an effective amount of trehalose and then dried. This gives a solid solution of the bioactive material in a trehalose glass which then readily dissolves in an aqueous solution to give an aqueous suspension of the insoluble bioactive material. It has now been shown that the immunosuppressant cyclosporin A (which is insoluble in water and normally administered as an oil emulsion) in a solution of trehalose in a 1:1 ethanol:water mixture can be dried to give a clear glass of trehalose containing cyclosporin A. This glass can be milled to give a free flowing powder which if added to water dissolves instantaneously to give a suspension of cyclosporin A in water. If the solution dried contained a mixture of trehalose/trehalose octaacetate (insoluble in water), then the glass formed can be tailored for different dissolution rates by varying the ratio of the two.
Preferably, the compositions contain an amount of at least one physiologically acceptable salt which effects a loss of water from the composition so that at ambient humidity the vapor pressure of water of crystallization is at least 14 mm Hg (2000 Pa) at 20° C. (molecular water-pump buffer, hereinafter referred to as "MWPB") and does not interfere with glass formation of the stabilizing polyol. In the case of powders for pulmonary administration, addition of an effective amount of MWPBs is particularly preferred as they have been found to prevent wetting and clumping. An effective amount of an MWPB is one which substantially prevents wetting and clumping. Suitable salts are those described in Spanish pat. no. 2009704. These may constitute a buffer system or may replace a substantial amount of a component of the buffer in a conventional formulation. Suitable salts include, but are not limited to, ammonium chloride, orthophosphate and sulfate; barium chloride dihydrate; calcium lactate pentahydrate; copper sulfate pentahydrate; magnesium salicylate tetrahydrate, magnesium sulfate heptahydrate; potassium bisulfate, bromide, chromate and dihydrogen orthophosphate; sodium acetate trihydrate, bromoiridate dodecahydrate, carbonate decahydrate, fluoride, hydrogen orthophosphate dodecahydrate, metaperiodate trihydrate, metaphosphate trihydrate and hexahydrate, sulfite heptahydrate, sulfate heptahydrate and decahydrate and thiosulfate pentahydrate; and zinc sulfate heptahydrate and combinations thereof.
Preferably, if the bioactive material and/or glass forming polyol contain carboxyl and amino, imino or guanidino groups, the compositions further contain at least one physiologically acceptable inhibitor of the Maillard reaction in an amount effective to substantially prevent condensation of amino groups and reactive carbonyl groups in the composition.
The inhibitor of the Maillard reaction can be any known in the art. The inhibitor is present in an amount sufficient to prevent, or substantially prevent, condensation of amino groups and reactive carbonyl groups. Typically, the amino groups are present on the bioactive material and the carbonyl groups are present on the carbohydrate, or the converse. However, the amino and carbonyl groups may be intramolecular within either the biological substance or the carbohydrate. Various classes of compounds are known to exhibit an inhibiting effect on the Maillard reaction and hence to be of use in the compositions described herein. These compounds are generally either competitive or noncompetitive inhibitors. Competitive inhibitors include, but are not limited to, amino acid residues (both D and L), combinations of amino acid residues and peptides. Particularly preferred are lysine, arginine, histidine and tryptophan. Lysine and arginine are the most effective. There are many known noncompetitive inhibitors. These include, but are not limited to, aminoguanidine and derivatives and amphotericin B.
EP-A-O 433 679 also describes suitable Maillard inhibitors which are 4-hydroxy-5,8-dioxoquinoline derivatives.
As discussed below, the composition may further contain at least one physiologically acceptable glass. Suitable glasses include, but are not limited to, carboxylate, nitrate, sulfate, bisulfate, carbohydrate derivatives and combinations thereof. Carboxylate and carbohydrate derivatives are preferred where water soluble glasses are required as many of these derivatives are slowly soluble in water. Suitable glasses include, but are not limited to, those described in PCT/GB 90/00497.
The composition may also be coated with one or more layers of a phosphate glass having a predetermined solution rate. The composition may further contain other water soluble and biodegradable glass formers. Suitable glass formers include, but are not limited to, lactide and lactide/glycolide copolymers, glucuronide polymers and other polyesters, polyorthoesters, and polyanhydrides.
In one embodiment, the delivery vehicle of the invention is sized and shaped for penetration of the epidermis and is suitable for ballistic delivery. Suitable vehicle size is thus on the order of microns, preferably in the range of 1-5 microns in diameter and 5-150 microns in length, which allows penetration and delivery through the epidermis to subcutaneous and intradermal tissues. It will be appreciated that, at this size, the delivery vehicle may macroscopically appear to be in powder form, regardless of its configuration at the microscopic level.
Preferred configurations of the delivery vehicle of the invention are microneedles and microfibers of a stabilizing polyol glass. The manufacture of microfibers is relatively simple and economical and results in stable delivery vehicles comprised of the stabilizing polyol and the bioactive material. Additional stabilizers, buffers, glasses and polymers may also be added as described herein. Many of the most labile biomolecules can withstand high temperatures (e.g., 60-100° C.) when stabilized by drying in trehalose, provided that the majority of their surface is in contact with the stabilizing polyol. Temperatures of 70° C. can be tolerated for over a month (Colaco et al. (1992) Bio/Technology 10:1007-1011) and higher temperatures for shorter periods. The results presented herein show that the fluorescent protein phycoerythrin dried in trehalose can be stored at 100° C. for at least one month with no detectable loss of functional activity. Other stabilizing polyols give protection at lower temperatures than trehalose. The maximum temperature of protection must be determined empirically and is within the skill of one in the art without undue experimentation.
Providing the exposure time is limited, bioactive materials admixed in dry stabilizing polyols can be heated to fluidize the glass which can then be drawn or spun as a fiber without damage to the product. Fibers can either be drawn from a billet and wound onto a drum or they can be spun through fine holes in a rapidly rotating cylinder that is heated above the melting point of the glass. Being inherently brittle, these glass fibers can be readily crushed or chopped into short lengths to form long cylindrical rods or needles. By varying the diameter of the fibers produced, needles can be formed which vary from micro to macro needles, i.e., from thicknesses of a few microns to fractions of a millimeter. It has been found that cotton candy machines are suitable for use in preparing the microfibers. Although the optimal conditions must be determined empirically for each stabilizing polyol, such determinations are well within the skill of one in the art.
The microfibers prepared in accord with the principles of the present invention, have a relatively high aspect ratio, i.e., length compared to diameter, preferably in the range of 1-5 microns in diameter and 5-150 microns in length. This high aspect ratio provides for enhanced "end on" penetration upon ballistic delivery, by the tendency of the microfibers to lineup parallel to the barrel of the ballistic microinjector, described in more detail below. Longer macrofibers may be injected using conventional impact ballistic devices or by trocar.
Alternative preferred embodiments of the delivery vehicle include uniform microspheres, preferably with a narrow size distribution. This configuration is particularly useful when increased control of the depth of penetration of the delivery vehicle is desirable. Such control would be useful, for example, for intradermal delivery of vaccines to the basal layer of the epidermis, to bring antigen into proximity to the Langerhans cells of the skin to induce optimal immune responses.
To prepare microspheres of the present invention, several methods can be employed depending upon the desired application of the delivery vehicles. Suitable methods include, but are not limited to, spray drying, freeze drying, air drying, vacuum drying, fluidized-bed drying, milling, co-precipitation and critical fluid extraction. In the case of spray drying, freeze drying, air drying, vacuum drying, fluidized-bed drying and critical fluid extraction; the components (stabilizing polyol, bioactive material, buffers etc.) are first dissolved or suspended in aqueous conditions. In the case of milling, the components are mixed in the dried form and milled by any method known in the art. In the case of co-precipitation, the components are mixed in organic conditions and processed as described below. Spray drying can be used to load the stabilizing polyol with the bioactive material. The components are mixed under aqueous conditions and dried using precision nozzles to produce extremely uniform droplets in a drying chamber. Suitable spray drying machines include, but are not limited to, Buchi, NIRO, APV and Lab-plant spray driers used according to the manufacturer's instructions. A number of carbohydrates are unsuitable for use in spray drying as the melting points of the carbohydrates are too low causing the dried materials to adhere to the sides of the drying chamber. Generally, carbohydrates with a melting point of less than the spray drying chamber are unsuitable for use in spray drying. For example, palatinit and lactitol are not suitable for use in spray drying under conventional conditions. A determination of suitable carbohydrates can thus be made on known melting points or determined empirically. Such determinations are within the skill of one in the art.
An alternative method for manufacturing microspheres as delivery vehicles in accord with the present invention is to prepare a uniform aqueous/organic phase emulsion of the bioactive material in a solution of the stabilizing polyol as the aqueous phase and the glass former in the organic phase. This is followed by drying of the emulsion droplets to form a solid solution of the bioactive material and stabilizing polyol in an amorphous matrix of the glass former. In a modification of this method, the emulsion may be formed from the bioactive compound in solid solution in the stabilizing polyol and two different polymers dissolved together in one solvent, or dissolved into two separate solvents. The solvent(s) are then removed by evaporation to yield double or multi-walled microspheres. Suitable methods for making multi-walled microspheres are described, for instance, in Pekarek et al. (1994) Nature 367:258-260; and U.S. Pat. No. 4,861,627.
The bioactive material can also be dried from an organic solution of the stabilizing polyol and the bioactive material to form a glass containing homogeneously distributed bioactive material in solid solution in the polyol glass. These glasses can then be milled and/or micronized to give microparticles of homogeneous defined sized.
The bioactive material and the stabilizing polyol can also be co-precipitated to give high quality powders. Co-precipitation is performed by spraying, for instance with an air brush, the bioactive material and stabilizing polyol and/or glass former into a liquid in which neither dissolves, such as ice-cold acetone.
The invention also encompasses hollow fibers for delivery of bioactive materials. By drawing down a heated hollow billet, fine hollow needles can be formed. These can be made to contain a finely powdered stabilized compound by introduction of the fine powder during the melting and drawing down process. The hollow fiber can also be made of thermoplastic, organic polymer and/or carbohydrate and/or derivatized carbohydrate glass which may itself be water soluble or biodegradable.
An alternative embodiment of the delivery vehicle in the invention comprises a hollow vehicle comprised of water soluble glass or plastic which is filled and optionally coated with stabilizing polyol glass and the bioactive material. Fine hollow fibers of water-soluble inorganic or organic glasses can be drawn from a hollow billet and a finely powdered stabilizing polyol-bioactive material can be incorporated into the lumen of the billet, and therefore of the fiber, during the process. Alternatively, hollow needles of these glasses may be filled by allowing capillarity to draw up suspensions of the finely powdered bioactive substance in a volatile organic solvent which is subsequently removed by evaporation leaving the needle filled with the bioactive substance. In a modification of this method, incorporation of a soluble glass former in the organic solvent phase will result in the needle being filled with the bioactive substance in solid solution in the glass former.
In another embodiment of the invention, coformulations of stabilizing polyol glass and other water soluble materials are included. For example, coformulations of stabilizing polyol glass with water-soluble glasses such as phosphate glasses (Pilkington Glass Company) or biodegradable plastics such as lactide or lactide/glycolide copolymers will yield a more slowly eroding vehicle for delayed release of the bioactive material. A finely powdered stabilizing polyol glass/bioactive material can be intimately mixed with a finely powdered carboxylate glass and co-sintered. Alternatively, if a metal carboxylate glass has a lower melting point than the stabilized bioactive polyol glass, the latter can be homogeneously embedded as a solution in a carboxylate glass by cooling the melt obtained. This can be milled to give a fine powder with solubilities intermediate between the rapid solubility of the stabilizing polyol and the slow solubility of the carboxylate glass.
Alternate coformulations include the use of a homogeneous suspension of the finely powdered bioactive material/stabilizing polyol mixture encapsulated in a carboxylate glass by drying from an organic solution of the carboxylate to form the carboxylate glass. This can the ground to give a fine powder which would have the rapidly dissolving stabilizing polyol glass containing the encapsulated bioactive material entrapped within a slow dissolving carboxylate glass (i.e., a conventional slow-release system). Pulsatile release formats can be achieved either by repeated encapsulation cycles using glasses of different dissolution rates, or by mixing powders of a number of coformulations with the desired range of release characteristics. Note that this glass could also be drawn or spun to give microfibers or microneedles which would be slow-release implants. It will be appreciated that any stabilizing polyol formulation should be such that it is capable of releasing the bioactive material upon administration, and should not unduly effect the stability of the material being administered.
As discussed above, glasses of derivatized carbohydrates are also suitable for use herein. Suitable derivatized carbohydrates include, but are not limited to, carbohydrate esters, ethers, imides and other poorly water-soluble derivatives and polymers.
The delivery vehicle is loaded with the bioactive materials to be delivered to the tissue by drying a solution of the bioactive material containing a sufficient quantity of stabilizing polyol to form a glass on drying. This drying can be accomplished by any method known in the art, including, but not limited to, freeze drying, vacuum, spray, belt, air or fluidized-bed drying. The dried material can be milled to a fine powder before further processing the material with the polyol glass or coformulation.
Different dosing schemes can also be achieved depending on the delivery vehicle employed. A stabilizing polyol glass delivery vehicle of the invention can provide for a quick release or flooding dose of the bioactive material after administration, upon the dissolving and release of the bioactive material from the stabilizing polyol glass. Coformulations of stabilizing polyol with water soluble glasses and plastics such as phosphate, nitrate or carboxylate glasses and lactide/glycolide, glucuronide or polyhydroxybutyrate plastics and polyesters, can provide more slowly dissolving vehicles for a slower release and prolonged dosing effect. A booster effect can also be realized by utilizing a hollow water soluble vehicle filled and coated with a stabilizing polyol glass loaded with the bioactive material. The polyol glass coating loaded with the material will dissolve rapidly to give an initial dosing effect. While the hollow outer portion of the vehicle dissolves, there will be no dosing action, followed by a booster effect of the inner filling comprised of a stabilizing polyol and a bioactive material when the hollow outer portion is breached by dissolution. Such pulsatile release format is particularly useful for vaccine delivery. Should multiple effect pulsatile delivery be desirable, delivery vehicles with any combination of layers of water soluble "non-loaded" materials and stabilizing polyol glass loaded with the bioactive material can be constructed.
The delivery of more than one bioactive material can also be achieved using a delivery vehicle comprised of multiple coatings or layers of the stabilizing polyol loaded with different materials or mixtures thereof. Administration of the solid dose delivery vehicle of the present invention can be used in conjunction with other conventional therapies and coadministered with other therapeutic, prophylactic or diagnostic substances.
The invention further encompasses methods of delivery. Suitable delivery methods include, but are not limited to, topical, transdermal, transmucosal, oral, gastrointestinal, subcutaneous, ocular, and by-inhalation (naso-pharyngeal and pulmonary, including transbronchial and transalveolar). Topical administration is, for instance, by a dressing or bandage having dispersed therein the stabilizing polyol glass/bioactive material, or by direct administration into incisions or open wounds. Creams or ointments having dispersed therein slow release beads of bioactive material/stabilizing polyol are suitable for use as topical ointments or wound filling agents.
Compositions for transdermal administration are preferably powders of microneedles or microbeads. Larger, macroscopic needles and beads are also provided for subdermal implantation and extended drug delivery. The particle sizes should be small enough so that they do not cause skin damage upon administration. Preferably, the powders are microneedles of approximately 10-1,000 microns in length and 1-150 microns in diameter. The powders may be prepackaged in single-dose, sealed, sterile formats. Suitable methods of transdermal administration include, but are not limited to, ballistic, trocar and liquid jet delivery. Ballistic administration is preferred as it is relatively painless. Generally the delivery vehicle is accelerated in a shock wave of helium or another gas and fired into the epidermis. A suitable device for ballistic delivery is described in PCT/GB 94/00753. A suitable device for liquid-jet delivery is a Medi-ject device (Diabetes Care (1993) 16, 1479-1484). Such liquid-jet devices are particularly useful with the larger macroneedle delivery vehicles which may also be delivered by the use of conventional impact ballistic devices or by trocar.
Upon transdermal administration, the degree of penetration of the delivery vehicle can be controlled to a certain degree, not only by the ballistic microinjector, described below, but also the shape and size of the powder particles. For example, when a relatively uniform and lesser degree of penetration is desirable, microspheres may be more suitable for the practice of the present invention. When a greater degree of penetration is desirable, a microfiber configuration may be preferred. Because the aspect ratio (i.e., length to diameter) of the microneedles is high they have higher masses than spherical particles with a similar diameter. If they can be induced to impact with the skin "end-on," their higher mass will give them a higher momentum for the same velocity and they will thus penetrate deeper into the tissues. When randomly orientated microneedles are put into a laminar flow of gas, they will align themselves in the direction of the air flow and in the gas-propelled ballistic injector this will ensure that they impact the skin at the right angles and thus penetrate it.
The compositions suitable for transmucosal delivery include, but are not limited to, lozenges for oral delivery, pessaries, and rings and other devices for vaginal or cervical delivery.
Compositions suitable for gastrointestinal administration include, but are not limited to, pharmaceutically acceptable powders and pills for ingestion and suppositories for rectal administration.
Compositions suitable for subcutaneous administration include, but are not limited to, various implants. Preferably the implants are macroscopic spherical or cylindrical shapes for ease of insertion and may be either fast or slow release. Since the entire implant is dissolved in the body fluids, removal of the implant is not necessary. Furthermore, the implants do not contain synthetic polymers and thus are less likely to initiate a separate immune response.
Compositions suitable for ocular administration include, but are not limited to microsphere and macrosphere formulations, and saline drops.
Compositions suitable for by-inhalation administration include, but are not limited to, powders of bioactive material/stabilizing polyol. Preferably the powders are of a particle size 0.1 to 10 microns. More preferably, the particle size is 0.5 to 5 microns. Most preferably, particle size is 1 to 4 microns. In particular for pulmonary administration, the preferred particle size is 2.5-3 microns. Preferably the powders also contain an effective amount of a physiologically acceptable MWPB. An effective amount of an MWPB is one which sufficiently reduces wetting to prevent substantial clumping, for instance, a 50% molar ratio of potassium sulfate. Sodium sulfate and calcium lactate are the preferred salts with potassium sulfate being the most preferred. Atomizers and vaporizers filled with the powders are also encompassed by the invention.
There are a variety of devices suitable for use in by-inhalation delivery of powders. See, e.g., Lindberg (1993) Summary of Lecture at Management Forum, Dec. 6-7, 1993 "Creating the Future for Portable Inhalers." Additional devices suitable for use herein include, but are not limited to, those described in WO9413271, WO9408552, WO9309832 and U.S. Pat. No. 5,239,993.
The following examples are provided to illustrate but not limit the present invention.
a) Carbohydrate Glass Microfiber Formation.
Glasses were formed by drying 20% solutions of either trehalose, lactitol, palatinit or GPS, containing MWPB and 1 mg/ml of the fluorescent algal protein phycoerythrin under vacuum (80 mtorr) for 16 hrs. The glasses were ground in a domestic coffee mill to yield a coarse powder which was used to fill the spinning head of a Kando K1 Kandy Floss cotton candy machine (GB Patent No. 00103/76). The motor was then switched on and the powdered sugar glass heated at element settings between 5 and 9. Residence time in the spinning head was 2-10 min and a continuous process was maintained by constantly topping up the head.
The fibers produced were ground in a domestic coffee grinder and the results obtained are presented in Table 1, which shows an average-of the needles produced. These data indicate that, with all three sugar glasses, reduced element settings result in the production of finer diameter microneedles. With trehalose, setting 6 gave microneedles with a mean diameter of 15 microns, and setting 9, microneedles with a mean diameter of 40 microns. With GPS, setting 9 gave microneedles with a mean diameter of 15 microns. Microneedles formed from glasses containing buffer salts remained dry at ambient temperatures and humidities. Microneedles containing phycoerythrin showed retention of biological activity as assessed by fluorescence.
b) Binary Carbohydrate/Organic Mixture Glass Microfiber Formation.
Glasses were formed by drying a 5:1:1 mixture of trehalose, sodium octanoate and water under vacuum (80 mTorr) for 16 hrs. The glasses were ground in a domestic coffee mill to yield a coarse powder which was used to fill the spinning head of a Kando K1 Kandy Floss machine. The motor was then switched on and the powdered binary carbohydrate/organic glass heated at element settings between 5 and 9. As with pure trehalose glasses, reduced element settings resulted in the production of finer diameter microneedles. The binary mixture glasses can be tailored to yield glasses with significantly different tensile properties compared to the corresponding pure trehalose glasses. Residence time in the spinning head was again 2-10 min and a continuous process was maintained by constantly topping up the head. The results obtained indicate that variations of the melting points and dissolution times of the glasses and the resulting physical properties of the microfibers can be achieved by varying both the carbohydrate/organic molecules and ratios used.
a) Micronized Powder Preparation.
Glasses were formed by drying 20% solutions of either trehalose, lactitol, palatinit, GPM or GPS, containing an equimolar ratio of MWPB and protein, by freeze-drying under vacuum (80 mTorr) for 16 hrs. The glasses were powdered using a Trost air-jet mill. Particle size in the micronized powders were measured using a Malvern Mastersizer laser particle sizer. The results obtained with micronized powders obtained from an original solution of 0.5 M trehalose and 0.5 M calcium lactate showed a monodisperse particle distribution with mean particle diameters of 1.1 microns (
b) Spray-Dried Powder Preparation.
20% solutions of trehalose containing MWPB salts and protein (phycoerythrin) were dried in a Buchi or Lab-Plant spray drier at a pump speed of 500-550 ml/hr and an inlet temperature of 180° C. Particle size was again measured using a SympaTec laser particle sizer. The spray-dried powders showed a monodisperse particle distribution with a sufficiently narrow peak size distribution for effective use as particles in a powder ballistic device. In the results shown in
c) Drying from Organic Solvents
A 50 mg/ml solution of cyclosporin A in a 1.1 mixture of ethanol:water, containing 20% trehalose, was air-dried at ambient temperature to form a clear trehalose glass containing cyclosporin A in solid solution. The glass was ground to give a powder, according to the method described in Example 1, and remained a free-flowing powder at ambient temperature and humidities. Addition of the powder to water resulted in the dissolution of the trehalose and the formation of a uniform aqueous suspension of cyclosporin A.
d) Co-precipitation Powder Preparation
20% solutions of trehalose, lactitol, palatinit, GPM or GPS, containing MWPB and protein (phycoerythrin) were dried by spraying into an acetone-solid carbon dioxide freezing bath. The precipitated powders were separated by centrifugation or filtration and air dried to remove residual solvent. The powders again showed a monodisperse particle distribution and those containing buffer formulation salts remained dry at ambient temperatures and humidities.
Various ratios of trehalose and trehalose octaacetate (TOAC) or two different carbohydrate esters were dissolved in pyridine with sufficient water added to give a clear solution. The solutions were dried rapidly to give clear transparent monophasic glasses of the carbohydrate and/or carbohydrate ester mixes. TOAC is almost insoluble in water and increased amounts of the ester in the mixture resulted in the increased dissolution times of the coformulated glass formed.
Coformulations of TOAC and raffinose undecaacetate containing 1-2% Mordant Blue (MB9) dye were prepared as described above. The release rates of MB9 were measured by absorbance quantitated spectrophoto-metrically and the results are depicted in
a) Protection of Horseradish Peroxidase and Alkaline Phosphatase Against Acetone Effected by Drying in Trehalose
A 0.1 mg/ml horseradish peroxidase solution or a 1 mg/ml alkaline phosphatase/4 mg/ml bovine serum albumin solution was dried in an FTS Systems freeze drier with or without 50% trehalose. The drier was used as a vacuum drier and the mixtures dried without freezing. Four times the volume of solvent was added and the solution was allowed to evaporate to dryness. The contents were redissolved in 5 milliliters of water, and enzyme activity was assessed, in serial dilution, by commercial 'kit' reagents. The alkaline phosphatase kit was obtained from Sigma Chemical Co. and the horseradish peroxidase kit was obtained from Kirkegaard & Perry Laboratories, Inc. As shown in
b) Protection of Phycoerythrin Against Organic Solvents Afforded by Drying in Trehalose
A 400 μg/ml phycoerythrin solution was freeze-dried in a Labconco freeze-drier with or without 20% trehalose. The dried protein powder was exposed to a number of organic solvents for 72 hrs. The phycoerythrin remained fluorescent in acetone, acetonitrile chloroform and methanol. In pyridine, the phycoerythrin remained fluorescent for 24-48 hr but began wetting and lost fluorescence by 72 hrs. In dimethylsulfoxide, the powder solubilized but the phycoerythrin remained fluorescent.
c) Protection of Phycoerythrin Against 100° C. Afforded by Drying in Trehalose
A 400 μg/ml phycoerythrin solution was freeze-dried in the FTS drier with or without 20% trehalose. The dried protein was stored at 100° C. for one month with no loss of functional activity.
d) Effect of Protein on Tg of Trehalose
The presence of protein in a powdered trehalose glass has now been found to stabilize the glass against the plasticizing effected by water on pure trehalose glasses. This is illustrated by the results depicted in
This elevation of Tg by protein is utilized to formulate trehalose stabilized protein in a pure trehalose glass. A powdered protein-containing trehalose glass is prepared as described in Example 1, added to the melt of a pure trehalose glass and the mixture immediately quenched to give the trehalose-stabilized protein powder in a solid solution in a pure trehalose glass. This glass can then be further processed as described in Examples 1 and 2. A similar embedded glass can be formed if an alternative stabilizing polyol with a Tg lower than that of trehalose is used to form the pure sugar glass, which again allows this glass to be melted and used below the melting point of the powdered, stabilized-protein glass to be embedded. For example, palatinit glasses melt at 60-70° C. at which temperature the protein-stabilized powder is still a glass and the trehalose-stabilized protein glass can thus be encapsulated in the palatinit glass melt by simply mixing and quenching.
a) Microparticles of trehalose containing MB9 were prepared by spray drying as described in Example 2b. The solution dried contained 0.39 M trehalose and 0.14 M calcium lactate and 0.5% MB9. These particles were coated by adding them to a saturated solution of zinc palmitate (ZnCl16) in toluene and cooling from 60° C. to 30° C. This deposited a layer of ZnCl16 on the particles which were then filtered under pressure to remove the excess ZnCl16, washed with acetone and air-dried. The resulting powder remained unwetted in water for at least three days (the particles floated in the water without sinking or releasing MB9 and thereafter slowly released dye into the water). Thus, otherwise water soluble powders may be made water impermeable by coating with metal carboxylates such as ZnCl16 to yield slow release formats. Note that the coating material is most likely in crystalline form and not a glass; therefore, the solid phase in which the bioactive materials are suspended need not be in the glass phase to be impermeable.
b) Coformulation of Carbohydrate and Organic Glasses by Evaporation
A powdered trehalose glass containing phycoerythrin was added to a 1:1 mixture of sodium octanoate and zinc ethylhexanoate dissolved in an excess of chloroform and evaporated under a stream of N2 at room temperature to yield a carboxylate glass containing phycoerythrin powder in solid solution. The coformulated glass remained insoluble in water for at least 48 hrs. The phycoerythrin powder remained fluorescent both in the initial organic solution and in the final glass.
c) Coformulation of Carbohydrate and Organic Glasses by Co-Melting
A preformed organic glass formed by quenching a melt of 1:1 mixture of sodium octanoate and zinc ethylhexanoate was melted at 95° C. and a powdered trehalose glass containing phycoerythrin was added to the melt. The resultant mixture was immediately quenched on an aluminum block precooled to 15° C. A clear carboxylate glass formed containing encapsulated phycoerythrin powder which retained its biological functionality as assayed by its ability to fluoresce. Varying the nature and ratios of the carbohydrate and organic moieties in the coformulated glasses results in glasses with a range of slow-release characteristics as assessed from their variable dissolution times in water.
d) Coformulation of Carbohydrate Glasses and Plastics by Evaporation
A powdered trehalose glass containing phycoerythrin prepared according to Example 1 was added to a solution of perspex filings dissolved in an excess of chloroform and evaporated under a stream of N2 at room temperature to yield a solid perspex block containing the phycoerythrin powder in solid solution. The phycoerythrin powder remained fluorescent both in the initial organic solution and in the reformed solid perspex which was impermeable to water even after 4 weeks. Similar results were obtained with polyester dissolved in dichloromethane and polyurethane dissolved in dimethylsulfoxide.
The end of a billet of a trehalose glass tubes with a central cavity filled with a powdered trehalose glass containing phycoerythrin prepared according to Example 1 was melted in a zone furnace and the fiber drawn by winding onto a metal drum rotated at constant speed. The hollow fibers formed contain the finely powdered trehalose-stabilized compound and can be cut to any desired size. The hollow fiber can also be made of thermoplastic, organic glass or carbohydrate which may itself be water soluble, and by varying the diameter of the fibers produced, the filled needles can be formed which vary from micro to macro needles, i.e. from thicknesses of microns to fractions of a millimeter. The hollow needles may be filled with any solid dose vehicle described herein.
Powdered glasses were injected into the skin by propulsion at hypersonic speeds using a pressure shock wave created by the release of compressed gas. The powder was held in the chamber attached to the large end of a funnel-shaped cavity to the smaller end of which was attached a cartridge of compressed gas sealed by a mylar film and the hypersonic shock wave was generated by rupture of the mylar membrane. Alternatively, a timer relay-driven solenoid can be used to control the helium release which would allow functioning at lower helium pressures. This is the principle used in the particle inflow gun (PIG) developed by Finer for transforming plant tissues. Vain et al. (1993) Plant Cell Tissue and Organ Culture 33:237-246.
Although the foregoing invention has been described in some detail by way of illustration and example for purposes of clarity of understanding, it will be apparent to those skilled in the art that certain changes and modifications may be practiced. Therefore, the description and examples should not be construed as limiting the scope of the invention, which is delineated by the appended claims.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
Wednesday, May 16, 2012
Somehow, I didnt think Id still be confused at 51. Of course, when I was 15 and tried to imagine myself at 50, I didnt think Id be walking upright, either. Surely at such an ancient age Id be creeping along like a crab.
The point is, I thought Id have life locked down by now. But after all these years, there are still situations I dont know how to handle with grace. Or handle at all, actually.
Example: Last week I wanted two pounds of sliced turkey at the grocery store. The deli employees are nice but rushed. It takes a while to catch an eye, if you know what I mean. When I finally placed my order, a tiny, harried clerk went into a back cooler and returned lugging a huge, unopened hunk o turkey. She gloved up, peeled off the wrapper and heaved the turkey up onto the metal slicer. It bounced off and SPLAThit the floor.
She yelped and threw both hands in the air. Horrified, I blurted, Sorry! Have a nice day! and peeled off like my Nikes were on fire. What else should I have done? Seriously, Im asking.
Then theres the question Ive heard for 25 years: So, why dont you have kids? Do you like children?
In fact, I do like children. I also like dolphins, but I dont keep Flipper in my bathtub. Since not all appreciate my warped humor, I usually just smile and say, Well anyhoo you know can you believe this weather? Once a hairdresser was determined to cut my hair. I opted to keep it long. She met my eyes in the mirror and said, Youd look better with short hair. No, I said. In college I chopped it off. Very Mia Farrow, except I didnt look like Mia Farrow. I prefer long hair. She shrugged and said, I disagree. She gave me a great blowout, I gave her a good tip. I never sat in her chair again, but still wonder if I said the right thing. What about the mom screaming at her kid in a restaurant? I wouldnt talk to an egg-sucking dog the way she was roasting that kid, but I didnt know what to say. Or do. So I kept eating, but the spinach pizza stuck in my throat. Heres a good one: Someone pops by your house for an unannounced visit. I shriek and slam the door, but thats just me. Widdle invites them in. He has no false pride and doesnt care if newspapers are everywhere and laundry is piled on the dining room table. He says, Welcome! Sit down! while I flee to the bathroom and bang my head repeatedly on the cast-iron tub. I never know how to respond when Im invited to a Tupperware party, purse party, candle party, lingerie party, kitchen items party or jewelry party. On the one hand, I 1) Am extremely shy in social situations and 2) Have all the Tupperware, candles, purses, lingerie, kitchen items and jewelry Ill ever need. On the other hand, its a chance to maybe discover a new friend. The shyness factor usually wins, however, and I dont go. So dont take it personally. What about this all-too-common situation: A dog unrestrained in the back of a pickup truck. Do I call the Highway Patrol? Do I throw rocks at the driver? Im just not sure. See what I mean? I thought Id have life figured out by now. Guess Im still learning as I go. Julie R. Smith, who thought age brought wisdom, can be reached at email@example.com.
The Journal Scene is pleased to offer readers the enhanced ability to comment on stories. We expect our readers to engage in lively, yet civil discourse. We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. Responsibility for the statements posted lies with the person submitting the comment, not The Journal Scene.
If you find a comment that is objectionable, please click "report abuse" and we will review it for possible removal. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.
© 2015 The Journal Scene an Evening Post Industries company. All Rights Reserved.
Registration on or use of this site constitutes acceptance of our Terms of Service, Privacy Policy and Parental Consent Form.

subset: commoncrawl


text:
with Lisa Jansen and Daiyu Judith Randall
in the Conference Center at 308 Page Street
Saturday, October 18, 2014
1 - 4:15 pm
The Taoist Yin form of Yoga is an effective way to still the mind and support the body for a longer and more comfortable sitting practice. Yin Yoga can be practiced by everyone, whether one is a yogi or not. With patience and trust, practitioners often find their bodies more open and flexible than expected. This workshop will offer Yin Yoga postures to free the hips and loosen the lower back. Intertwined into the Yin part of practice will be guided meditation, spiritual affirmations and mantras to bring stillness to the mind and prepare for the sitting part of the workshop.
Note: Please bring a yoga mat if you have one.
Fees: $40; $36 current SFZC members; $32 limited income. Some partial scholarships available. (About Registration, Scholarships, and Cancellations.)
To Register: [CANCELED] Use the ticket table below. Or call our toll free number (888.743.9362) or our local number (415.475.9362).
About Registration, Scholarships, and Cancellations


text:
Up to [DragonFly] / src / sys / sys
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Add the lchflags() syscall. This is essentially the same as chflags(), but it operates on the symlink, not on the underlying file. Documentation-from: FreeBSD Reviewed-by: dillon
Implement a new system call: getvfsstat(). This system call returns an array of statfs and statvfs structures. Unfortunately there is no way to just return an array of statvfs structures because the statvfs structure does not have sufficient information in it to identify the mount point. getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags);
* Implement new system calls in the kernel: statvfs(), fstatvfs(), fhstatvfs(). * Implement a new VFS op, VFS_STATVFS(). Implement a default for this new op for VFSs which do not implement VFS_STATVFS(), which calls VFS_STATFS() and converts the structure (using Joerg's conversion procedure from libc). * Remove statvfs(), fstatvfs(), and fhstatvfs() from libc. These functions are now system calls.
Don't #include <sys/select.h> from sys/types.h, to conform to SUS. Some old BSD programs assume that sys/types.h is basically enough to get all types and even functions declared, so adjust these. sys/param.h still works as kitchensink and includes sys/select.h.
Add pselect syscall. Add pselect man page (obtained from FreeBSD). Add pselect wrapper in libthread_xu that calls pselect syscall. Add pselect wrapper in libc_r that calls poll syscall (see XXX in code and BUGS in pselect man page). Changed libbind to use pselect syscall instead of locally defined wrapper.
Regenerate system callsa (add uuidgen()).
Add a new system call, lwp_rtprio(), and regenerate system calls. int lwp_rtprio (int, pid_t, lwpid_t, struct rtprio *); This patch provides an alternative to rtprio(2) which is able to operate on individual LWPs. Submitted-by: Aggelos Economopoulos <firstname.lastname@example.com>
Just throw all the main arguments for syslink() into syslink_info and pass the structure. Do not pass the descriptor separately, do not pass a pointer to the structure size (just pass the size directly). The search routines just return one structure at a time so a return size field is not needed. Start revamping syslink() to make it more mbuf-centric. This work is very much still in progress.
Probably the last change to the syslink() system call. Allow a generic structure to be passed and returned and revamp the command structure.
syslink work - Implement code for a reformulated system call, giving the kernel the ability to manage multiple syslink routing hubs. Include the physical id space reservation and allocation and assignment of same.
Rename the following special extended I/O system calls. Only libc, libc_r, and VKERNEL are currently known to use these calls so the rename should have no major effects. Fix broken prototypes in unistd.h. __accept -> extaccept __connect -> extconnect __pread -> extpread __preadv -> extpreadv __pwrite -> extpwrite __pwritev -> extpwritev Broken-Prototypes-Reported-by: Joe Talbott <firstname.lastname@example.com>
Modify the trapframe sigcontext, ucontext, etc. Add %gs to the trapframe and xflags and an expanded floating point save area to sigcontext/ucontext so traps can be fully specified. Remove all the %gs hacks in the system code and signal trampoline and handle %gs faults natively, like we do %fs faults. Implement writebacks to the virtual page table to set VPTE_M and VPTE_A and add checks for VPTE_R and VPTE_W. Consolidate the TLS save area into a MD structure that can be accessed by MI code. Reformulate the vmspace_ctl() system call to allow an extended context to be passed (for TLS info and soon the FP and eventually the LDT). Adjust the GDB patches to recognize the new location of %gs. Properly detect non-exception returns to the virtual kernel when the virtual kernel is running an emulated user process and receives a signal. And misc other work on the virtual kernel.
Rename system calls, removing a "sys_" prefix that turned out not to be such a good idea. sys_set_tls_area() to set_tls_area() sys_get_tls_area() to get_tls_area()
Add two more vmspace_*() system calls to read and write a vmspace. These will be used by the virtual kernel to handle copyin/copyout. The routines are just empty wrappers at the moment. Implement the body for vmspace_mmap() and vmspace_munmap().
Make some adjustments to low level madvise/mcontrol/mmap support code to accomodate vmspace_*() calls. Reformulate the new vmspace_*() calls so they operate similarly to the MAP_VPAGETABLE and mcontrol() calls. This also makes vmspace's more 'programmable' in the sense that it will be possible to mix virtual pagetable mmap()ings with other mmap()ing in a vmspace. Fill in the code for all the new vmspace_*() calls except for vmspace_ctl(). NOTE: vmspace calls are effectively disabled unless vm.vkernel_enable is turned on, just like MAP_VPAGETABLE. Renumber the new mcontrol() and vmspace_*() calls and regenerate.
MAP_VPAGETABLE support part 3/3. Implement a new system call called mcontrol() which is an extension of madvise(), adding an additional 64 bit argument. Add two new advisories, MADV_INVAL and MADV_SETMAP. MADV_INVAL will invalidate the pmap for the specified virtual address range. You need to do this for the virtual addresses effected by changes made in a virtual page table. MADV_SETMAP sets the top-level page table entry for the virtual page table governing the mapped range. It only works for memory governed by a virtual page table and strange things will happen if you only set the root page table entry for part of the virtual range. Further refine the virtual page table format. Keep with 32 bit VPTE's for the moment, but properly implement VPTE_PS and VPTE_V. VPTE_PS can be used to suport 4MB linear maps in the top level page table and it can also be used when specifying the 'root' VPTE to disable the page table entirely and just linear map the backing store. VPTE_V is the 'valid' bit (before it was inverted, now it is normal).
Add skeleton procedures for the vmspace_*() series of system calls which will be used by virtual kernels to implement processes.
Add structures and skeleton code for a new system call called syslink() which will support the kernel syslink API. This is the link protocol that will be used for user<->kernel (e.g. user VFS) and kernel<->kernel (cluster) communications. Syslink-based protocols will be used for DEV, VFS, CCMS, and other cluster-related operations.
Add two more system calls, __accept and __connect. The old accept() and connect() are still present but will eventually be replaced with a libc wrapper. The new system calls add a flags argument, allowing O_FBLOCKING or O_FNONBLOCKING to be passed to override the non-blocking setting in the file pointer. They are intended to be used by libc_r.
Add kernel syscall support for explicit blocking and non-blocking I/O regardless of the setting applied to the file pointer. send/sendmsg/sendto/recv/recvmsg/recfrom: New MSG_ flags defined in sys/socket.h may be passed to these functions to override the settings applied to the file pointer on a per-I/O basis. MSG_FBLOCKING - Force the operation to be blocking MSG_FNONBLOCKING- Force the operation to be non-blocking pread/preadv/pwrite/pwritev: These system calls have been renamed and wrappers will be added to libc. The new system calls are prefixed with a double underscore (like getcwd vs __getcwd) and include an additional flags argument. The new flags are defined in sys/fcntl.h and may be used to override settings applied to the file pointer on a per-I/O basis. Additionally, the internal __ versions of these functions now accept an offset of -1 to mean 'degenerate into a read/readv/write/writev' (i.e. use the offset in the file pointer and update it on completion). O_FBLOCKING - Force the operation to be blocking O_FNONBLOCKING - Force the operation to be non-blocking O_FAPPEND - Force the write operation to append (to a regular file) O_FOFFSET - (implied of the offset != -1) - offset is valid O_FSYNCWRITE - Force a synchronous write O_FASYNCWRITE - Force an asynchronous write O_FUNBUFFERED - Force an unbuffered operation (O_DIRECT) O_FBUFFERED - Force a buffered operation (negate O_DIRECT) If the flags do not specify an operation (e.g. neither FBLOCKING or FNONBLOCKING are set), then the settings in the file pointer are used. The original system calls will become wrappers in libc, without the flags arguments. The new system calls will be made available to libc_r to allow it to perform non-blocking I/O without having to mess with a descriptor's file flags. NOTE: the new __pread and __pwrite system calls are backwards compatible with the originals due to a pad byte that libc always set to 0. The new __preadv and __pwritev system calls are NOT backwards compatible, but since they were added to HEAD just two months ago I have decided to not renumber them either. NOTE: The subrev has been bumped to 1.5.4 and installworld will refuse to install if you are not running at least a 1.5.4 kernel.
Remove the asynchronous system call interface sendsys/waitsys. It was an idea before its time.
Modify kern/makesyscall.sh to prefix all kernel system call procedures with "sys_". Modify all related kernel procedures to use the new naming convention. This gets rid of most of the namespace overloading between the kernel and standard header files.
Mark various forms of read() and write() MPSAFE. Note that the MP lock is still acquire, but now its a lot deeper in the fileops. Mark dup(), dup2(), close(), closefrom(), and fcntl() MPSAFE. Some code paths don't have to get the MP lock, but most still do deeper into the fileops.
Add the preadv() and pwritev() systems and regenerate. Submitted-by: Chuck Tuffli <firstname.lastname@example.com> Loosely-based-on: FreeBSD
Continue work on our pluggable scheduler abstraction. Implement a system call to set the scheduler for the current process (and future children), and add an abstraction for scheduler registration. Submitted-by: Sergey Glushchenko <email@example.com>
Make struct dirent contain a full 64bit inode. Allow more than 255 byte filenames by increasing d_namlen to 16bit. Remove UFS specific macros from sys/dirent.h, programs which really need them should include vfs/ufs/dir.h. MAXNAMLEN should not be used, but replaced by NAME_MAX. To keep the impact for older BSD code small, d_ino and d_fileno are kept in the old meaning when __BSD_VISIBLE is defined, otherwise the POSIX version d_ino is used. This will be changed later to always define only d_ino and make d_fileno a compatiblity macro for __BSD_VISIBLE. d_name is left with hard-coded 256 byte space, this will be changed at some point in the future and doesn't affect the ABI. Programs should correctly allocate space themselve, since the maximum directory entry length can be > 256 byte. For allocating dirents (e.g. for readdir_r), _DIRENT_RECLEN and _DIRENT_DIRSIZ should be used. NetBSD has choosen the same names. Revamp the compatibility code to always use a local kernel buffer and write out the entries. This will be changed later by passing down the output function to vop_readdir, elimininating the redundant copy. Change NFS and CD9660 to use to use vop_write_dirent, for CD9660 ensure that the buffers are big enough by prepending char arrays of the right size. Tested-by & discussed-with: dillon
Tie SCTP into the kernel, this includes adding a new syscall (sctp_peeloff). Obtained from: KAME
Implement TLS support, tls manual pages, and link the umtx and tls manual pages together. TLS stands for 'thread local storage' and is used to support efficient userland threading and threaded data access models. Three TLS segments are supported in order to (eventually) support GCC3's __thread qualifier. David Xu's thread library only uses one descriptor for now. The system calls implement a mostly machine-independant API which return architecture-specific results. Rather then pass the actual descriptor structure, which unnecessarily pollutes the userland implementation, we pass a more generic (base,size) and the system call returns the %gs load value for IA32. For AMD64 and other architectures, the returned value will be something for those architectures. The current low level assembly support is not as efficient as it could be, but it is good enough for now. The heavy weight switch code for processes does the work. The light weight switch code for pure kernel threads has not been changed (since the kernel doesn't use TLS descriptors we can just ignore them). Based on work by David Xu <firstname.lastname@example.com> and Matthew Dillon <email@example.com>
Implement sigtimedwait and sigwaitinfo syscalls. Reviewed by: dillon
Minor correction in umtx_*() calls, the mutex pointer should point to volatile store.
Add syscall primitives for generic userland accessible sleep/wakeup functions. These functions are capable of sleeping and waking up based on a generic user VM address. Programs capable of sharing memory are also capable of interaction through these functions. Also regenerate our system calls. umtx_sleep(ptr, matchvalue, timeout) If *(int *)ptr (userland pointer) does not match the matchvalue, sleep for timeout microseconds. Access to the contents of *ptr plus entering the sleep is interlocked against calls to umtx_wakeup(). Various error codes are turned depending on what causes the function to return. Note that the timeout may not exceed 1 second. utmx_wakeup(ptr, count) Wakeup at least count processes waiting on the specified userland address. A count of 0 wakes all waiting processes up. This function interlocks against umtx_sleep(). The typical race case showing resolution between two userland processes is shown below. A process releasing a contested mutex may adjust the contents of the pointer after the kernel has tested *ptr in umtx_sleep(), but this does not matter because the first process will see that the mutex is set to a contested state and will call wakeup after changing the contents of the pointer. Thus, the kernel itself does not have to execute any compare-and-exchange operations in order to support userland mutexes. PROCESS 1 PROCESS 2 ******** RACE#1 ****** cmp_exg(ptr, FREE, HELD) . cmp_exg(ptr, HELD, CONTESTED) . umtx_sleep(ptr, CONTESTED, 0) . [kernel tests *ptr] <<<< COMPARE vs cmp_exg(CONTESTED, FREE) . <<<< CHANGE . tsleep(....) umtx_wakeup(ptr, 1) . . . . . PROCESS 1 PROCESS 2 ******** RACE#2 ****** cmp_exg(ptr, FREE, HELD) cmp_exg(ptr, HELD, CONTESTED) umtx_sleep(ptr, CONTESTED, 0) cmp_exg(CONTESTED, FREE) <<<< CHANGE vs umtx_wakeup(ptr, 1) [kernel tests *ptr] <<<< COMPARE [MISMATCH, DO NOT TSLEEP] These functions are very loosely based on Jeff Roberson's umtx work in FreeBSD. These functions are greatly simplified relative to that work in order to provide a more generic mechanism. This is precursor work for a port of David Xu's 1:1 userland threading library.
Journaling layer work. * Adjust the new mountctl syscall to make the passed file descriptor an explicit argument rather then storing the fd in the control structure. Convert the fd to a file pointer to make kern_mountctl() callable from a pure thread. * Get rid of vop_stdmountctl and just have the VOP default ops call journal_mountctl(), which makes things less confusing. * Get more of the journaling infrastructure working. Basic installation and removal of the journaling structure and the creation and destruction of the worker thread and stream file pointer now works (with lots of XXX's). * Add a journaling vector for VOP_NMKDIR to test the journaling VOP ops shim.
Journaling layer work. Add a new system call, mountctl, which will be used to manage the journaling layer. Add a new VOP, VOP_MOUNTCTL, which will be used to pass mountctl operations down into the VFS layer.
There is enough demand for Kip Macy's checkpointing code to warrent permanent integration into the kernel. Add a fixed system call, sys_checkpoint(2), to support the checkpt(1) utility as well as user programs which want to install their own signal handler (SIGCKPT).
Add message passed syscall's. Split up sendsys2() into two parts, sendsys2() and waitsys2(). sendsys2() will take care of the synchronous syscall's and initate asynchronous syscall's, and waitsys2() will wait for a asynchronous syscall to finish. Asynchronous syscall's can currently only be issued by the root user, but this limitation will be removed when the code becomes more stable and better tested. Add userland support for the synchronous and asynchronous sysmsg's to libcr. Libcr defaults to the use of synchronous sysmsg's now, but this will be changes as soon as we allow every user to do asynchronous sysmsg's. Add a limitation to the number of sysmsg's one proc can have running at any given time. This defaults to unlimited and can be changed with the kern.max_sysmsg sysctl.
Additional CAPS IPC work. Add additional system calls to allow a CAPS server to set a generation number and a CAPS client to query it, which can be used for any purpose but which is intended to allow a server to tell its clients to invalidate their caches. Add missing fork-handling code. CAPS links are only good on a thread-by-thread basis. When a process forks/rforks/clones any active CAPS links will be created as dummy entries in the forked process, causing CAPS syscalls to return ENOTCONN. This allows code based on CAPS to detect when it has been forked so it can re-connect to the service. Make a slight change to the API. caps_sys_put() now returns an immediate ENOTCONN if it forked. Note that userland CAPS code must still deal with the case where a message has been sent and the connection is lost before the reply is returned. The kernel automatically replies unreplied messages with 0-length data in these cases. Add additional flags to the API, including one that allows a client to block when connecting to a non-existant service.
Resident executable support stage 1/4: Add kernel bits and syscall support for in-kernel caching of vmspace structures. The main purpose of this feature is to make it possible to run dynamically linked programs as fast as if they were statically linked, by vmspace_fork()ing their vmspace and saving the copy in the kernel, then using that whenever the program is exec'd.
CAPS IPC library stage 2/3: Adjust syscalls.master and regenerate our system calls.
Implement an upcall mechanism to support userland LWKT. This mechanism will allow multiple processes sharing the same VM space (aka clone/threading) to send each other what are basically IPIs. Two new system calls have been added, upc_register() and upc_control(). Documentation is forthcoming. The upcalls are nicely abstracted and a program can register as many as it wants up to the kernel limit (which is 32 at the moment). The upcalls will be used for passing asynch data from kernel to userland, such as asynch syscall message replies, for thread preemption timing, software interrupts, IPIs between virtual cpus (e.g. between the processes that are sharing the single VM space).
This is a major cleanup of the LWKT message port code. The messaging code is getting closer to being directly useable by userland. With these changes message/port operations are now far better abstracted then they were before. * Stale fields have been removed from struct lwkt_msg. * lwkt_abortmsg() has been revamped to make it easier to support. * lwkt_waitmsg has been converted to a port function. * mp_*port() function fields have been renamed for better readability. * ms_cleanupmsg has been removed from struct lwkt_msg. * Union sysmsg is now struct sysmsg. * A copyout function has been added to struct sysmsg. * The system calls have been regenerated.
Add the varsym_list() system call and add listing support to the varsym utility. Work done by: Eirik Nygaard <email@example.com> and Matt Dillon
Variant symlink support stage 1/2: Implement support for storing and retrieving system-specific, user-specific, and process-specific variables.
Remove the FreeBSD 3.x signal code. This includes osendsig(), osigreturn() and a couple of structures that these syscalls depended on. Split the sigaction(), sigprocmask(), sigpending(), sigsuspend(), sigaltstack() and kill() syscalls. Move the 4.3BSD signal syscalls osigvec(), osigblock(), osigsetmask(), osigstack() and okillpg() to the 43bsd subtree. I'm not too sure if these will even work with the FreeBSD-4 signal trampoline code, but they do compile and link. Implement linux_signal(), linux_rt_sigaction(), linux_sigprocmask(), linux_rt_sigprocmask(), linux_sigpending(), linux_kill(), linux_sigaction(), linux_sigsuspend(), linux_rt_sigsuspend(), linux_pause(), and linux_sigaltstack() with the new in-kernel syscalls. This patch kills 7 stackgap allocations in the Linuxolator.
Introduce the function iovec_copyin() and it's friend iovec_free(). These remove a great deal of duplicate code in the syscall functions. For those who like numbers, this patch uses iovec_copyin() four times in uipc_syscalls.c, two times in linux_socket.c and two times in 43bsd_socket.c. Would somebody please comment on the inclusion of sys/malloc.h in sys/uio.h? Remove sockargs() which was used once in the svr4 emulation code. It is replaced with a small piece of code that gets an mbuf and copyin()'s to it's data region. Remove the osendfile() syscall which was inapropriately named and placed in the COMPAT_43 code where it doesn't belong. Split the socket(), shutdown() and sendfile() syscalls. All of the syscalls in kern/uipc_syscalls.c are now split. Prevent a panic due to m_freem()'ing a dangling pointer in recvmsg(), orecvmsg(), linux_recvmsg(). This patch completely removes COMPAT_43 from kern/uipc_syscalls.c.
__P() != wanted, begin removal, in order to preserve white space this needs to be done by hand, as I accidently killed a source tree that I had gotten this far on. I'm committing this now, LINT and GENERIC both build with these changes, there are many more to come.
Syscall messaging 4: Further expand the kernel-version of the syscall message. The (in-kernel) syscall message is now arranged: struct blah_args { sysmsg usrmsg ... syscall arguments ... } Original system calls copyin() just the arguments and then initialize sysmsg and go. Syscall messages copyin() usrmsg+arguments and then initialize sysmsg as appropriate and go. Further detail work for EASYNC support. Implement td_msgport as a reply port and start working on an async capability for the nanosleep() system call. NOTE: Preliminary system call messaging can be tested using the suite of programs in /usr/src/test/sysmsg. NOTE: Work is still in progress and you can crash the system, so use of MSGF_ASYNC for messaging system calls is currently restricted to root. Also fixed a bug in the syscall module helper code in sys/sysent.h, which might have been causing the linux problems (or might not have). All system call headers had to be regenerated to deal with the structural changes.
syscall messaging 3: Expand the 'header' that goes in front of the syscall arguments in the kernel copy. The header was previously just an lwkt_msg. The header is now a 'union sysmsg'. 'union sysmsg' contains an lwkt_msg plus space for the additional meta data required to asynchronize various system calls. We haven't actually asynchronized anything yet and will not be able to until the reply port and abort processing infrastructure is in place. See sys/sysmsg.h for more information on the new header. Also cleanup syscall generation somewhat and add some ibcs2 stuff I missed.
Syscall messaging work 2: Continue with the implementation of sendsys(), using int 0x81. This entry point will be responsible for sending system call messages or waiting for messages / port activity. With this commit system call messages can be run through 0x81 but at the moment they will always run synchronously. Here's the core interface code for IA32: static __inline int sendsys(void *port, void *msg, int msgsize) { int error; __asm __volatile("int $0x81" : "=a"(error) : "a"(port), "c"(msg), "d"(msgsize) : "memory"); return(error); } Performance verses a direct system call is currently excellent considering that this is my initial attempt. 600MHzC3 1.2GHzP3x2(SMP) getuid() 1300 ns 909 ns getuid_msg() 1700 ns 1077 ns
Preliminary syscall messaging work. Adjust all <syscall>_args structures to include an lwkt_msg at their base which will eventually allow syscalls to run asynch. Note that this is for the kernel copy of the arguments, the userland argument format has not changed for the standard syscall entry point. Begin abstracting a messaging syscall interface (#if 0'd out at the moment). Change the syscall2 entry point to take the new expanded argument structure into account. Change sysent argument calculation (AS macro) to take the new expanded argument structure into account. Note: existing linux, svr4, and ibcs2 emulation may break with this commit, though it is not intentional.
proc->thread stage 2: MAJOR revamping of system calls, ucred, jail API, and some work on the low level device interface (proc arg -> thread arg). As -current did, I have removed p_cred and incorporated its functions into p_ucred. p_prison has also been moved into p_ucred and adjusted accordingly. The jail interface tests now uses ucreds rather then processes. The syscall(p,uap) interface has been changed to just (uap). This is inclusive of the emulation code. It makes little sense to pass a proc pointer around which confuses the MP readability of the code, because most system call code will only work with the current process anyway. Note that eventually *ALL* syscall emulation code will be moved to a kernel-protected userland layer because it really makes no sense whatsoever to implement these emulations in the kernel. suser() now takes no arguments and only operates with the current process. The process argument has been removed from suser_xxx() so it now just takes a ucred and flags. The sysctl interface was adjusted somewhat.
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most ids have been removed from !lint sections and moved into comment sections.
import from FreeBSD RELENG_4 126.96.36.199